python3和pypy3有什么区别

Cha*_*Sim 9 pypy python-3.x

今天我input()通过任何算法问题知道pypy3在时间上比python3快。性能差异几乎高达 12 倍。

为什么会有这样的差异?

Sau*_*Rai 24

请检查一下,当我们谈到 Python 编程语言时,我们通常不仅指语言,还指实现。Python 是一种可以以多种不同方式实现的语言的规范。

Python 编程语言的默认实现是Cpython(假设 python3 你的意思是 Cpython)。顾名思义,Cpython 是用 C 语言编写的。Cpython将python源代码编译成中间字节码,由Cpython虚拟机执行。

Jython是可以在 Java 平台上运行的 Python 编程语言的实现。Jython 程序使用 Java 类而不是 Python 模块。Jython 编译成 Java 字节码,然后可以由 Java 虚拟机运行。

PyPy 如果你想让你的代码运行得更快,你可能应该只使用 PyPy。— Guido van Rossum(Python 的创造者) Python 是一种动态编程语言。据说 Python 很慢,因为默认的 CPython 实现以字节码形式编译 python 源代码,与机器代码(本机代码)相比,这很慢。在这里,PyPy 进来了。

PyPy 是用 Python 编写的 Python 编程语言的实现。解释器是用 RPython(Python 的一个子集)编写的。PyPy 使用即时 (JIT) 编译。简单来说,JIT 使用编译的方法让解释器系统更加高效和快速。所以基本上 JIT 可以将源代码编译成本地机器代码,这使得它非常快。PyPy 还默认支持无堆栈模式,为海量并发提供微线程。据说它比 Cpython 快大约 7.5 倍。

希望这会帮助你。


小智 7

CPython

它是用 C 和 C++ 编写的 python 语言的解释器。解释器将python代码(由人类编写,可以被人类阅读)转换为机器代码(可以被机器阅读/理解)。这个过程涉及多个步骤。
CPython 是 Python 的参考实现,用 C 编写。它将 Python 代码编译为中间字节码,然后由虚拟机解释。CPython 提供了与 Python 包和 C 扩展模块的最高级别的兼容性。
如果您正在编写开源 Python 代码并希望覆盖尽可能广泛的受众,那么以 CPython 为目标是最好的选择。要使用依赖 C 扩展功能的包,CPython 是您唯一的实现选项。
Python 语言的所有版本都是用 C 实现的,因为 CPython 是参考实现。

pypy

它是用 RPython 编写的 Python 语言的 JIT 编译器。JIT编译器执行需要编译的代码,即运行时JIT编译代码,就在执行之前。
PyPy 是一个 Python 解释器,在 Python 语言的受限静态类型子集 RPython 中实现。解释器具有即时编译器并支持多个后端(C、CLI、JVM)。
PyPy 旨在最大程度地兼容参考 CPython 实现,同时提高性能。
如果您希望提高 Python 代码的性能,那么值得一试 PyPy。在一组基准测试中,它目前比 CPython 快 5 倍以上。
PyPy 支持 Python 2.7。PyPy3 以测试版发布,针对 Python 3。