更快、更强的Python实现:Pyston v2.0发布

开发 前端
六年过去,10 月 28 日 Pyston 团队发布了最新版本——Pyston v2。比 Python 快 20% 的 Pyston v2.0 来了。

比 Python 快 20% 的 Pyston v2.0 来了。

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。

1. 性能

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。

2. 技术方法

Pyston v2 使用的技术包括:

  • 利用 DynASM 的低开销 JIT;
  • Quickening;
  • 通用 CPython 优化;
  • 构建进程提升。

3. 兼容性

由于 Pyston 是 CPython 的分支,因此开发团队认为 Pyston 是目前兼容性最强的 Python 实现。它支持 CPython 拥有的所有特性和 C API。

理论上,Pyston 与 CPython 具备同样的功能,但在实践中任何新的 Python 实现都会遇到一些暂时的兼容问题。详情参见:https://github.com/pyston/pyston/wiki。

4. 可用性

Pyston v2.0 可作为预置软件包立即可用。目前,Pyston v2.0 已具备适用于 Ubuntu 18.04 和 20.04 x86_64 的包。

Pyston 的试用较为简单,安装软件包,将 python3 替换成 pyston3,然后使用 pip-pyston3 install 重新安装依赖项。在已有自动构建设置时,这一改变只需几行即可完成。

Pyston 团队表示,计划未来将代码开源,但由于编译器项目成本高昂且没有赞助,因此目前该项目仍是闭源的,但 Pyston v1.0 的源代码是开放的。

原文链接:https://blog.pyston.org/2020/10/28/pyston-v2-20-faster-python/

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】 

戳这里,看该作者更多好文

 

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2020-11-02 09:07:41

Pyston v2.0Python

2013-04-26 10:10:52

2009-03-30 09:16:16

JBossSOAEclipse

2009-04-01 08:53:34

JavaRebelJVM插件

2009-04-03 15:00:42

LinuxKDE v4.2.2

2011-10-18 15:00:46

Perl

2012-02-16 09:15:48

JavaJActor

2011-07-20 13:04:48

NutzDao

2011-07-13 15:09:48

PHP

2013-02-26 09:36:57

RubyRuby 2.0

2012-02-13 09:47:28

JavaJActor

2012-04-13 10:52:12

JavaMyFaces

2009-06-19 13:48:34

GlassFish E

2009-11-30 10:44:37

Debris LinuLinux

2009-05-20 16:28:47

LinuxMusix2.0 Beta 1

2012-05-11 10:42:56

JavaErrai

2011-03-30 14:29:13

QuartzJava

2009-06-10 08:43:33

Linux桌面发布

2012-02-29 10:54:21

JavaPlay Framew

2016-09-09 14:37:01

数据SCOPA情报模式
点赞
收藏

51CTO技术栈公众号