转载

谷歌推出 Python 性能加速方案

昨天,谷歌发布了一个 Python 性能加速方案 —— Grumpy,可以将 Python 代码转译(transcompile)为 Go 源代码,然后再编译为 Native Code。目前在 Github 上已经获得了 3000+ star。

项目地址:https://github.com/google/grumpy

谷歌此举为社区又增添了一个 Python 性能加速方案。在众多编程语言中,Python 一直被诟病性能不高,背后的一个重要原因就是其标准实现 CPython 中的全局解释器锁(GIL)的存在,限制了并发和并行能力。一直以来,业界和社区都在寻找比较好的解决方案,目前知名的有 PyPy,微软的 Pyjion,和 Dropbox 的 Pyston等 JIT 实现。

Python 在谷歌的应用非常广泛,YouTube 的前端服务器和 YouTube API 就是采用 Python 语言编写。Python 之父曾经也在谷歌任职。

根据相关博文,这个项目的初衷就是为了提高 Python 代码的性能。Grumpy 既是一个源代码转译器,又提供了一个运行时。目前,该项目还处于实验阶段,而且不支持 Python 3。

负责开发该项目的工程师在 Hacker News 上回答网友质疑为什么只支持 Python 2时,指出『 谷歌目前有着很大的 Python 2.7 代码库,因此是我们的侧重点 』。还有人猜测,谷歌此举可能是为了应对 Python 2.7 到 2020 年时终止维护 有关。与其将代码升级到 Python 3,谷歌更愿意未来将一部分 Python 代码转译为 Go 代码。

不过,这个猜测似乎并没有太多根据。谷歌工程师做出了如下回应,『(该项目的)目的是要继续用 Python 编码,转译后的代码没办法直接进行二次处理。当然对于性能关键的部分可能会用 Go 重写。 未来采取的是混合模式 。』

社区里还有通过引入 Rust、Lua、Julia 等语言加速 Python 的做法。

由于 Python 本身一直没能很好地解决 GIL 带来的性能限制,社区未来应该会继续出现其他的解决方案。 目前应该有 JIT 即时编译和混合代码两种形式 ,而且得到了不少大公司的支持。

这个趋势对于以后学习 Python 来说也是值得注意的: 未来肯定不是只要会 Python 就能满足工作需求,可能还需要学习 Go 等语言并研究如何结合使用

原文  http://www.codingpy.com/article/grumpy-boosts-python-with-go/
正文到此结束
Loading...