首页 编程 软件学院 查看内容

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

2022-1-21 08:55 2473 0

摘要: 可汗学院最近进行了大规模重写,他们用 Go 编写的面向服务的后端替换了旧的 Python 2 单体。 Kevin Dangoor 和 Marta Kosarchyn 是可汗学院的高级工程师,他们写了一系列关于重写的技术选择、执行和结果的博客文章。 ...
关键词: 可汗 Python 学院 他们 重写 Kotlin 性能 单体 迁移 进行

可汗学院最近进行了大规模重写,他们用 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.toutiao.com/a7055191301142102567/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部