为什么CPython在两个测试“slowspitfire”和“waf”上比PyPy更快?

时间:2011-04-30 18:54:26

标签: python benchmarking cpython pypy

从PyPy Speed Center上发布的benchmarks来看,除了两个测试外,PyPy似乎比CPython更快。

CPython在两个测试“slowspitfire”和“waf”上比PyPy更快。这是为什么?这两项测试测试的是哪种操作?是什么让CPython更快地进行这些操作? PyPy能否在这两项测试中赶上并击败CPython?

1 个答案:

答案 0 :(得分:8)

正如Tobu所说,邮件列表上有一个message草图解释了slowspitfire:包含GC对象的长列表,以及其他因素。

waf基准测试在性能方面的差异较小,我猜测答案会更复杂:PyPy做得更好的一些因素,CPython做得更好的一些因素,以及整体CPython略微领先。

一般来说,JIT优化实现的速度较慢有几个原因:

  • JIT的一般开销和检查是否JIT
  • CPU内存权衡:使用太多内存来节省太多CPU时间,或者不得不使用更多分页
  • JIT'ing太过激烈,或在错误的时间JIT'错误的代码