一款Windows PC端待办事项软件


不同版本Python的速度对比(从Python 2.7 到 Python 3.10)


[2021年8月9日更新]Python3.10是最快的,也是最新的CPython的速度之王

随着python3.8的发布,python3.X版本首次明显击败python2.7,当时运行的是我大约十年前编写的速度测试脚本。

这不是一个专门比较不同版本Python的每个功能方面性能的脚本,它的编写是因为大约十年前我开发了一个纯Python ODBC模块(pypyodbc),我很好奇这个模块在Python的不同实现上运行得有多差或快,包括:CPython 2.X、CPython 3.X、pypy甚至IronPython。

虽然在上述所有解释器上,这个纯python模块可以正常运行,但性能排名始终是:PyPy>cpython2.7>cpython3.X>IronPython

一些有趣的发现是:

  • PyPy显然是最快的,在运行脚本时,可以看到它总是以秒一秒的速度加速。

  • 在我的例子中,IronPython的速度慢了大约3倍,启动时间也非常长。

  • 在Python3.8来到之前,cPython3.X一直比python2.7慢。

因此,Python 3.8发布后的性能排名是:

pypy>cPython3.8>cPython2.7>=cPython3.7>IronPython

它终于比Python2.7快了一点。考虑到出于兼容性的目的,测试脚本和模块本身是以2.X和3.X都可以运行的方式编写的,但是对于python2.7更友好,如果代码是用3.X语法编写的,那么3.X解释器的表现应该更好。

2021年8月9日更新Python 3.10 rc1

在几轮测试中,Python3.10明显且稳定地比其他版本的CPython快。

PyPy>pypy3.10>cpython3.9>cpython3.8>cpython2.7>=cpython3.7>IronPython

当我在Python3.9仍处于RC状态时进行测试时,它通常比3.8慢,但现在比3.8快了一点

下面是这个速度测试脚本的具体输出:


PyPy

    Total  time: 42.1

Python3.10

    Total  time: 46.3

Python3.9

    Total  time: 48.8

Python3.8

    Total  time: 49.8

Python2.7

    Total  time: 52.4

Python3.7

    Total  time: 73.0

IronPython

    Total  time: 188.8




老周PMP博客