我在Project Euler上工作,想知道是否可以使用 PyPy 加速我的解决方案。但是,我发现结果非常令人失望,因为计算需要更多时间。
d:\projeuler>pypy problem204.py
3462.08630405 mseconds
d:\projeuler>python problem204.py
1823.91602542 mseconds
由于毫秒输出是使用 python 的time
模块计算的,所以我使用内置的基准命令再次运行它。
d:\projeuler>pypy -mtimeit -s "import problem204" "problem204._main()"
10 loops, best of 3: 465 msec per loop
d:\projeuler>python -mtimeit -s "import problem204" "problem204._main()"
10 loops, best of 3: 1.87 sec per loop
PyPy 报告说完成运行大约需要半秒钟。但是,我尝试多次运行 pypy question204 并且输出从未接近基准测试的 0.5 秒。与 pypy 不同的是,python 的 mtimeit 结果与输出一致。pypy 给了我不准确的基准,还是有一些我不明白的魔法?