作者:Kevin Modzelewski,机器之心编译
2014 年,Python 实现 Pyston 诞生。Pyston 的开发目标是开发高性能 Python 实现,使 Python 跻身 C++ 等传统系统级语言主导的领域。
Pyston 初是由 Dropbox 推出的基于 JIT 的 Python 实现。Pyston 解析 Python 代码,并转换到 LLVM 中间表示(IR),然后 IR 通过 LLVM 优化器和 LLVM JIT 引擎,得到可执行的机器码。
六年过去,10 月 28 日 Pyston 团队发布了新版本——Pyston v2。
Pyston v2:比 Python 快 20%
据官方介绍,在宏基准测试上 Pyston v2 比 Python 3.8 快了 20%。除了速度快,Pyston v2 还可以降低服务器成本,减少用户等待时间,提高开发生产力。
此外,Pyston v2 易于部署。如果想获得更好的 Python 性能,只需花很少的时间就可以尝试部署 Pyston。
性能
Pyston v2 在许多工作负载上的速度有明显提升。开发者的研究重点一直放在 Web 服务器工作负载上,但 Pyston v2 在其他工作负载和常见基准上速度也更快。
开发团队整理了一个新的公开 Python 宏基准测试套件,该套件可测量多个常用 Python 项目的性能。
Pyston v2 在微基准测试上也显示出性能加速。在 chaos.py 和 nbody.py 等测试中,其速度是标准 Python 的 2 倍。
在目标基准 (djangocms + flaskblogging) 上,Pyston v2 实现了平均延迟 1.22x 加速、p99 延迟 1.18x 加速,并且每个进程使用的内存仅多了几 MB。
技术方法
Pyston v2 使用的技术包括:
利用 DynASM 的低开销 JIT;
Quickening;
通用 CPython 优化;
构建进程提升。
兼容性
由于 Pyston 是 CPython 的分支,因此开发团队认为 Pyston 是目前兼容性强的 Python 实现。它支持 CPython 拥有的所有特性和 C API。
理论上,Pyston 与 CPython 具备同样的功能,但在实践中任何新的 Python 实现都会遇到一些暂时的兼容问题。详情参见:https://github.com/pyston/pyston/wiki。
可用性
Pyston v2.0 可作为预置软件包立即可用。目前,Pyston v2.0 已具备适用于 Ubuntu 18.04 和 20.04 x86_64 的包。
Pyston 的试用较为简单,安装软件包,将 python3 替换成 pyston3,然后使用 pip-pyston3 install 重新安装依赖项。在已有自动构建设置时,这一改变只需几行即可完成。
Pyston 团队表示,计划未来将代码开源,但由于编译器项目成本高昂且没有赞助,因此目前该项目仍是闭源的,但 Pyston v1.0 的源代码是开放的。