最近看到一篇博客,说python3.11比之前的版本有性能升级
https://www.blog.dailydoseofds.com/p/performance-comparison-of-python
于是我也用斐波那契的例子测试了一下其他几个Jit加速方案,场景有限,仅供参考。
测试环境Centos 7.9 + Intel(R) Xeon(R) W-2223 CPU @ 3.60GHz
测试代码
import time
def fib(N):if N<2:return Nelse:return fib(N-1)+fib(N-2)start=time.time()
print(fib(40))
print(time.time()-start)
测试结果如下
Python及各类Jit模块 | Linux环境耗时(s) |
python3.8 | 23.1 |
python3.8+Pyston | 22.1 |
python3.9 | 22.6 |
python3.9+PyPy | 2.1 |
python3.10 | 22.8 |
python3.10+Pyjion | 30.5 |
python3.11 | 13.6 |
pyhon3.11+Niutka+gcc10 | 11.6 |
python3.12 | 12.3 |
从结果可以看出,Python3.11之后,性能确实有很大进步
微软的Pyjion 居然会变慢
Dropbox的Pyston效果也一般
Niutka并不是Jit,而是直接生成可执行文件,但是还是比不过PyPy,优势也并不明显。
PyPy在这个场景大幅领先一个数量级。