[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