中断3年后,“Pyston”运行时返回使Python代码更快

2020-11-01 04:43:03

Pyston是Python运行时的一个变体,它使用实时编译来加快Python程序的执行速度,在经历了很长一段时间的不确定之后,Pyston的开发再次开始。从Dropbox停止的地方开始,一个新的开发团队发布了Pyston 2.0。

Pyston提供的最终目的是替代标准Python运行时CPython。它与Python3.8兼容,因此使用该版本的Python运行的程序应该按原样在Pyston上运行。

Pyston使用实时编译(JITting)执行代码生成,以实现许多加速。纯Python程序显示出最大的改进,而使用C/C++模块加快执行的程序,如PyTorch,显示较少或没有。

该项目的目标之一是尽可能接近CPython的原始实现,因为许多第三方项目都假设CPython的行为。因此,Pyston 2.0从现有的CPython代码库开始,并从Pyston 1.0添加了运行良好的特性,比如缓存属性和JITting。Pyston的JIT不再使用LLVM,而是使用DynASM直接发出汇编。

JITting是另一个项目PyPy使用的相同技术,用于为Python应用程序提供显著的加速-在某些情况下,是CPython可以提供的7倍。然而,Pyston的制造商声称,他们的方法比PyPy有几个优势,包括与CPython的C API更好的兼容性,以及对常见工作负载(例如,Flask和DjangoCMS)更低的内存消耗。

Pyston是在Dropbox创建的,2017年当Dropbox撤回支持时,Pyston停止了开发。现在,该项目仍在一些最初的开发人员的照顾下继续进行,尽管是独立的。

“在2020年初,”Pyston官方博客写道,“有足够的东西让我们成立一家公司,全职从事Pyston的工作。”然而,与最初的Pyston化身不同,新版本暂时是封闭源代码的,因为它的新管家决定了他们的商业模式。该项目的GitHub上提供的源代码似乎来自其早期版本,而不是最新版本。

预构建的Pyston二进制文件可用于Ubuntu 18.04和Ubuntu 20.04 x86_64。开发团队愿意根据用户反馈构建其他版本。