我在看 PyPy我只是想知道为什么它没有被主流 Python 发行版采用。 JIT 编译和更低的内存占用不会大大提高所有 Python 代码的速度吗?
简而言之,导致 PyPy 仍然是一个独立项目的主要缺点是什么?
最佳答案
PyPy 不是 CPython 的一个分支,因此它永远不能直接合并到 CPython 中。
理论上 Python 社区可以普遍采用 PyPy,PyPy 可以作为引用实现,CPython 可以停止使用。但是,PyPy 也有自己的弱点:
PyPy 是一个很棒的项目,但 CPU 密集型任务的运行时速度并不是一切,而且在许多应用程序中它是最不关心的问题。例如,Django 可以在 PyPy 上运行,这使得模板更快,但 CPython 的数据库驱动程序比 PyPy 的快;最后,哪种实现更有效取决于给定应用程序的瓶颈所在。
另一个例子:你会认为 PyPy 非常适合游戏,但大多数像 PyPy 中使用的 GC 策略会导致明显的抖动。对于 CPython,大部分 CPU 密集型游戏内容被卸载到 PyGame 库,PyPy 无法利用它,因为 PyGame 主要是作为 C 扩展实现的(尽管参见:pygame-cffi)。我仍然认为 PyPy 可以成为一个很棒的游戏平台,但我从未见过它被实际使用过。
PyPy 和 CPython 对基本设计问题有完全不同的方法并做出不同的权衡,因此在每种情况下,任何一种都不比另一种“更好”。
https://stackoverflow.com/questions/12867263/