8

从发布在 PyPy Speed Center 上的基准测试来看,除了两个测试之外,PyPy 似乎都比 CPython 快。

在“slowspitfire”和“waf”这两个测试中,CPython 比 PyPy 快。这是为什么?这两个测试测试什么样的操作?是什么让 CPython 对这些操作更快?PyPy 是否有望在这两个测试中赶上并击败 CPython?

4

1 回答 1

8

正如 Tobu 所说,邮件列表中有一条消息简要说明了 slowspitfire:其中包含 GC 对象的长列表,以及其他因素。

waf 基准在性能上的明显差异较小,我猜答案会更复杂:一些因素 PyPy 做得更好,一些因素 CPython 做得更好,整体 CPython 稍微领先。

一般来说,JIT 优化的实现会变慢有几个原因:

  • JIT 中的一般开销和检查是否 JIT
  • CPU-内存权衡:使用太多内存来节省太少的 CPU 时间,或者不得不使用更多的分页
  • JIT 过于激进,或者在错误的时间 JIT 错误的代码
于 2011-05-07T18:47:00.413 回答