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

为什么会有这样的差异?

最佳答案

请检查一下,当我们谈论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源代码,这比机器代码( native 代码)慢。 PyPy进来了。

PyPy是用Python编写的Python编程语言的实现。解释器是用RPython(Python的子集)编写的。
PyPy使用即时(JIT)编译。简而言之,JIT使用编译方法使解释器系统更高效,更快速。因此,基本上,JIT可以将源代码编译为 native 代码,从而使其非常快。
PyPy还默认支持无堆栈模式,提供微线程以实现大量并发。据说Python比Cpython快7.5倍。

希望这会帮助你。

关于python-3.x - python3和pypy3有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59050724/

10-12 21:14