极客视点
极客时间编辑部
极客时间编辑部
113231 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:07
登录|注册

Stream:我们为何要从Python转到Go?

讲述:丁婵大小:1.43M时长:03:07
最近,Stream 将其后端核心服务从 Python 改成了 Go。虽然他们的某些模块仍然在使用 Python,但是公司已决定从现在开始,使用 Go 来编写对性能要求较高的代码。
对此,Stream 的 CEO 兼创始人蒂埃里·肖伦巴克(Thierry Schellenbach)发文解释了他们决定转向 Go 的原因。
Stream 是一套用于构建、伸缩、定制化新闻源和活动流的 API。每个月为 3 亿多的用户提供约 10 亿次 API 请求。Stream 尤其关注性能和可靠性,这两点因素决定了他们制定的每项技术决策。
据介绍,Go 最大的卖点在于它的性能,无论在运行还是编译时,都有突出的性能优势。它与 Java 或 C++ 的运算速度几乎相当,在实际使用中,它比 Python 大约快 30 倍。
选择快速工具对提升系统性能非常重要,因此,Stream 也对 Cassandra、PostgreSQL、Redis 以及其他一些技术进行了优化。
然而,很多时候系统仍然存在瓶颈,而瓶颈正好在于 Python。Python 在执行序列化、排序和聚合等计算密集型任务时,需要花费很长的时间,有时比从网络上存取和检索数据花费的时间更长。
而这个时间是可以优化的,从 Python 切换到 Go 就可以缩短时间,这样一来,应用程序代码就更像是服务之间的粘合剂,而不再是优化中的主要瓶颈了。
同时,用 Go 编写的 Go 编译器也非常快。Stream 中最复杂的微服务就是采用 Go 编写的,它的编译时间仅仅需要 6 秒,Java 和 C++ 等工具链则慢得多,快则一分钟,慢则数小时。
此外,简单是 Go 的重要特征,一些 Python 代码的风格和框架,会因为作者的不同而风格各异,而 Go 恰恰相反,它推崇干净的代码风格,同时要求作者编写代码时严格遵守规范。 虽然,Go 有时候会使用更加冗长的代码,牺牲了代码的简洁性,但这样却让代码更容易阅读和理解了。
据了解,Stream 服务的强大功能之一是 feed 排名。开发 Python 版本的排名代码需要花费大约三天时间,包括编写代码、单元测试和编写文档。接下来,团队还需要大约两周的时间来优化代码。
相比之下,开发这些代码的 Go 版本大约花费了四天时间,并且不需要再对其性能实施进一步的优化。因此,虽然 Python 用来开发初期版本更快,但是整体来说,使用 Go 开发的工作量要小得多。
最终,Go 代码的执行速度要比精心优化的 Python 代码大约快 40 倍。总体来说,开发 Go 代码要花费更多的精力,但团队用来优化代码性能的时间却更少。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • TomShine
    Golang 还是值得学习的
    1
  • 黄天黑土
    丁婵老师,您朗读的太棒了!
  • 李孟
    go相当不错,那些数字币方面的平台,大部分都是go
收起评论
显示
设置
留言
3
收藏
40
沉浸
阅读
分享
手机端
快捷键
回顶部