PyPy 是一个包含即时编译器的 Python 解释器。Python 程序通常可以在不修改的情况下通过 PyPy 运行,但由于 PyPy 与 CPython(标准的 Python 解释器)对第三方模块的支持不同,专为 CPython 编写的模块不能自动与 PyPy 兼容。此外,由于 PyPy 在何时释放分配的对象(包括文件句柄)方面采用了不同的策略,一些 Python 程序可能会遇到问题。

与 CPython 相比,PyPy 带来的加速取决于任务的性质。对于一些计算密集型任务,加速因子可以高达 50。PyPy 性能中心报告的几何平均加速因子为 7.6,这是通过一组基准测试计算得出的。

PyPy 既支持 Python 2 也支持 Python 3,但 Python 3 版本的速度较慢;上述加速说明适用于 Python 2。

可以进行交互式使用 PyPy:你可以在命令行输入“pypy”,然后像使用 CPython 一样开始与其交互。

PyPy 的输出不一定与 CPython 完全相同。例如,PyPy 在从集合中返回项时,可能与 CPython 的顺序不同,因为集合中的项的顺序是任意的,并且不同的 Python 实现之间不保证相同;要验证这一点,你可以比较 {1,2}.pop() 的结果。字典的键顺序也是任意的。

在某些设置中,如果 PyPy 构建时启用了 SSE2 指令集,而 CPython 没有启用,浮点数结果可能会有所不同。

另见性能

最后修改: 2025年01月31日 星期五 01:11