您的位置 首页 golang

可汗学院为何用Golang重写他们的Python后端?

可汗学院 最近进行了大规模重写,他们用 Go 编写的面向服务的后端替换了旧的 Python 2 单体。

Kevin Dangoor 和 Marta Kosarchyn 是可汗学院的高级工程师,他们写了一系列关于重写的技术选择、执行和结果的博客文章。我们将在下面总结这个系列。

2019 年底,可汗学院正在寻求升级他们的后端。该站点建立在 Python 2 单体 架构 上,并且运行良好 10 多年。

然而,Python 2 即将在2020 年 1 月 1 日正式结束生命周期,因此可汗学院的工程师决定他们必须进行更新。

可汗学院有几种选择:

  • 从 Python 2 迁移到 Python 3 – 这将使 KA 的后端服务器代码性能和 Python 3 的语言特性提高 10-15%。
  • 从 Python 2 迁移到 Kotlin – KA 开始将 Kotlin 用于计算密集型后端任务,因为它比 Python 2 性能更高。从 Python 切换到 Kotlin 可能意味着可汗学院的响应速度更快,服务器成本下降。
  • 从 Python 2 迁移到 Go – Go 是一种简单而简洁的语言,编译时间非常快,对 Google App Engine 的一流支持以及比 Kotlin 更少的内存使用量(基于 KA 的测试)。

在这些选项中,可汗学院决定采用第三种选择,并使用 Go 重写他们的 Python 2 单体。

他们进行了性能测试,发现 Go 和 Kotlin(在 JVM 上)的性能相似,Kotlin 领先几个百分点。但是,Go 使用的内存要少得多。

Go 和 Python 之间的巨大性能差异使得转换所涉及的努力是值得的。

文中链接在:

文章来源:智云一二三科技

文章标题:可汗学院为何用Golang重写他们的Python后端?

文章地址:https://www.zhihuclub.com/97475.shtml

关于作者: 智云科技

热门文章

网站地图