7x24快讯 ·

Stream从Python切换到Go的原因

Stream最近将其后端核心服务从Python改成了Go。虽然他们的某些模块仍然在使用Python,但是公司已决定从现在开始使用Go来编写对性能要求较高的代码。文中,Stream的CEO兼创始人Thierry Schellenbach将解释他们决定转向Go的原因。

影响项目或者产品编程语言选型的因素有很多。与任何技术决策一样,选择编程语言时同样需要多方面权衡,即使这样,最终的选择结果都很难是完美的。我们最近将后端的核心服务从Python改成了Go,原因有很多,好处也很多。

为了理解这一变化的重要性,需要先了解我们的产品。Stream是一套用于构建、伸缩、定制化新闻源和活动流的API。每个月为3亿多用户提供约10亿次API请求。我们尤其关注性能和可靠性,这两点因素决定了我们制定的每项技术决策。

?

性能更优

?

Go最大的卖点在于它的性能,无论在运行还是编译时它都有突出的性能优势。它与Java或者C++的运算速度几乎相当。在实际使用中,我们发现它比Python大约快30倍。

选择快速工具对提升系统性能非常重要,因此我们对Cassandra、PostgreSQL、Redis以及其他一些技术进行了优化。然而,很多时候我们发现系统仍然存在瓶颈,而瓶颈正好在于我们的编程语言Python。Python在执行序列化、排序和聚合等计算密集型任务时需要花费很长的时间,有时比从网络上存取和检索数据花费的时间更长。我们知道这个时间是可以优化的。从Python切换到Go就可以缩短时间,这样一来,应用程序代码就更像是服务之间的粘合剂,而不再是优化中的主要瓶颈。

用Go编写的Go编译器也非常快。Stream中最复杂的微服务就采用Go编写,它的编译时间仅仅需要6秒,Java和C++等工具链则慢得多,快则一分钟,慢则数小时。

?

名副其实的简单

?

参与评论