Python3.7真的比Python3.6快吗?

2024-09-23 06:38:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾经在ubuntu中运行python3.6.7。今天,我尝试了非常新的Python3.7.3,但是我有点失望:在我看来,3.7比3.6慢:

这两个版本都取自deadsnakes/ppa,当我运行Python benchmark suite时,许多测试中3.7应该比3.6(dixit)快speed.python.org网站),我注意到了相反的情况:

python 3.6:

[ 1/47] 2to3...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_2to3.py --output /tmp/tmp27lejbkn`
.....................
2to3: Mean +- std dev: 319 ms +- 5 ms
[ 2/47] chameleon...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_chameleon.py --output /tmp/tmp_jvgzmw7`
.....................
chameleon: Mean +- std dev: 8.99 ms +- 0.13 ms
[ 3/47] chaos...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_chaos.py --output /tmp/tmpbpea7n4x`
.....................
chaos: Mean +- std dev: 114 ms +- 2 ms
[ 4/47] crypto_pyaes...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_crypto_pyaes.py --output /tmp/tmptbh2r8k1`
.....................
crypto_pyaes: Mean +- std dev: 103 ms +- 1 ms
[ 5/47] deltablue...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_deltablue.py --output /tmp/tmpm_fyde6p`
.....................
deltablue: Mean +- std dev: 7.19 ms +- 0.12 ms[1/1] 
raytrace...
INFO:root:Running `/home/elapouya/tmp/venv36/bin/python -u /home/elapouya/tmp/venv36/lib/python3.6/site-packages/performance/benchmarks/bm_raytrace.py --output /tmp/tmpeaeg9hxq`
.....................
raytrace: Mean +- std dev: 536 ms +- 8 ms

python 3.7:

^{pr2}$

我还尝试编译Python3.7.3源代码(使用--enable optimizations),但实际上速度并不快。在

我哪里错了?为什么,在我运行的官方基准测试套件中,python3.7没有比3.6快speed.python.org网站说?在


Tags: infohomebinlibpackagesperformancesiteroot
1条回答
网友
1楼 · 发布于 2024-09-23 06:38:43

查看所有3.6和3.7版本的构建日志,3.6版本的cflag中有-O2,3.7没有。这可能就是区别。在发现我为一个项目做基准的大型排序操作的性能急剧下降后,我不得不在我的RPi上重新编译3.7.3。在

在现有的3.5.3版本中,它可以在大约139秒内完成10^6整数的基数排序;在新的3.7.3安装中,除了启用优化之外什么都不用做,而这一时间改为765秒。将CFLAGS和config args与3.5.3安装相匹配将排序时间缩短到143秒。我相信,这大部分是由于-O2和分别在CFLAGS和config args中启用计算的goto造成的。在

您可以通过下载3.7.3源代码并使用-O2进行altinstall并启用computed goto来找到答案。在

编辑:10^6整数,而不是10^7。在

相关问题 更多 >