匿名用户
PyPy不是CPython的一个分支,所以它永远不能直接合并到CPython中。
理论上,Python社区可以普遍采用PyPy,PyPy可以作为参考实现,而CPython可以停止使用。然而,PyPy也有自己的弱点:
- CPython很容易与用C编写的Python模块集成,这是Python应用程序处理CPU密集型任务的传统方式(例如,请参见SciPy项目)。
- PyPy JIT编译步骤本身需要花费CPU时间--只有通过重复运行编译后的代码,它才会变得更快。这意味着启动时间可能会更长,因此PyPy在运行粘合代码或琐碎脚本时不一定那么高效。
- PyPy和CPython行为在所有方面都不相同,尤其是在“实现细节”方面(不是由语言指定的行为,但在实际层面上仍然很重要)。
- CPython运行在比PyPy更多的体系结构上,并且已经成功地适应了在嵌入式体系结构中运行的方式,而这些方式对PyPy来说可能是不切实际的。
- CPython用于内存管理的引用计数方案可以说比PyPy的各种GC系统具有更可预测的性能影响,尽管这并不一定适用于所有的“纯GC”策略。
- PyPy尚未完全支持Python 3.x,尽管Python 3.x是一个活动的工作项。