是什么让Python成为一种慢速语言?
Python是一种高级语言(比 C 或 C++),因此Python本身管理程序的细节,如内存分配、内存释放、指针等。这使得程序员更容易在Python编写代码。 Python代码首先被编译成Python字节码。字节码解释器转换在内部发生,其中大部分对开发人员是隐藏的。字节码是独立于平台的低级编程。字节码的编译是为了加速源代码的执行。源代码编译成字节码,然后在Python的虚拟机中一一执行,进行运算。虚拟机是Python的内部组件。
Python代码在运行时在内部被解释,而不是被编译成本机代码,因此它有点慢。
Python脚本的运行与 C/C++ 代码的运行:
Python:首先它被编译成字节码。这个字节码然后由 PVM(Python虚拟机)解释和执行。
C/C++:源代码被编译成二进制代码,可以直接由 CPU 执行,从而提高效率。
Python缓慢的主要原因:
- 被解释:与 C/C++ 等本地语言不同, Python代码在运行时被解释,而不是在编译时被编译为本地代码。 Python是一种解释型语言,这意味着我们编写的Python代码必须经过很多很多抽象阶段才能成为可执行的机器代码。
- 即时 (JIT) 编译器:其他解释型语言(如Java /.NET 字节码)的运行速度比 Python 的字节码快,因为它们的标准发行版包括一个 JIT 编译器,可在运行时将字节码编译为本机代码。 Python没有 JIT 编译器,因为Python的动态特性使其难以编写。不可能说将什么类型的参数传递给函数,这使得优化有点困难。
- 全局解释器锁 (GIL):它通过强制解释器一次仅执行单个进程(即Python解释器的实例)中的单个线程来防止多线程。