Pyston 2用JIT编译器实现Python

经过三年的开发中断, Pyston 2项目发布已经发布, 我发展了什么到Python语言的高性能实现 利用LLVM项目的发展。

实施 在使用现代JIT编译技术方面脱颖而出 并旨在实现类似于传统系统语言(如C ++)的高性能。

先前版本中的代码 由Pyston 是根据Apache许可分发的,但Pyston 2代码尚不可用,仅针对Ubuntu 18.04和20.04发布了现成的版本(带有该代码的文件可下载,但只有存根包含该项目仍处于关闭状态的信息) 。

发布代码是开发人员计划的一部分但这将完成 商业模式形成完成之后 并决定在没有Dropbox的财务支持的情况下继续开发Pyston。

关于皮斯顿2

与以前的版本不同 Pyston 2标记为稳定 而不是试用版。 为了优化性能,已经做了很多工作,并且在通过python-macrobenchmarks测试套件时,Pyston 2现在比原始Python 3.8快约20%。

在固有的Web应用程序工作负载中可以看到最明显的性能提升。 在单独的测试(例如chaos.py和nbody.py)中,Pyston 2的性能比Python 3.8高出2倍。使用JIT的代价是内存消耗略有增加。

我们很高兴发布Pyston v2,它是Python编程语言的一种更快且高度兼容的实现。 在我们的宏基准测试中,第2版比标准Python 20快3.8%。 更重要的是,它在您的代码中可能更快。 Pyston v2可以降低服务器成本,减少用户等待时间并提高开发人员生产力。

Pyston v2易于实现,因此,如果您希望获得更好的Python性能,建议您花五分钟的时间尝试一下Pyston。 这样做是加快项目速度的最简单方法之一。

在兼容性方面 使用本地Python,Pyston项目 被吹捧为CPython最兼容的替代实现,因为Pyston是主要CPython代码库的分支。

皮斯顿 支持所有CPython函数, 包括用于开发C扩展的C API Pyston最初是由Dropbox开发的,该公司于2017年决定停止内部开发。 2020年初,Pyston的顶级开发人员成立了他们的公司,彻底改造了该项目,并开始在Pyston专职工作。

尚未提供有关Pyston 2填充的技术细节,仅提及DynASM JIT,内联缓存和常规CPython优化。 Pyston的先前版本一次使用一种方法JIT,类似于现代JavaScript引擎中的JIT。

在JIT中,Python代码已解析并翻译 到中间表示LLVM(IR,中间表示)。 此外,IR表示在LLVM优化器中进行了处理,并传递给LLVM JIT引擎以供执行,该引擎将IR表示转换为机器代码。

为了获得有关使用动态Python语言编写的程序的变量类型的信息,使用了对象类型的概率预测技术,然后在执行过程中阐明了类型的正确选择。

因此,Pyston不断地改变两个分支之间的执行:快速分支(确定预测速率时)和慢分支(在类型不匹配的情况下使用)。

该工作可以在多线程模式下完成, 允许并行执行Python语言中的多个代码线程,并且没有全局解释器锁(GIL)。

最后 如果您想了解更多,您可以在中查看详细信息 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。