为什么 Python 比其他语言慢?
Python 是一种脚本语言,而 C 是一种编程语言。与 Python 相比,C/C++ 速度相对较快,因为当您运行 Python 脚本时,其解释器会逐行解释脚本并生成输出,但在 C 中,编译器会首先编译它并生成一个针对硬件进行了优化的输出。对于其他语言(如 Java 和 .NET),Java 字节码和 .NET 字节码分别比 Python 运行速度更快,因为 JIT 编译器在运行时将字节码编译为本地代码。CPython 不能有 JIT 编译器,因为 Python 的动态特性使得编写 JIT 编译器变得困难。
区别
众所周知,Python 是一种解释型语言,而 C 是一种编译型语言。解释型代码始终比直接的机器代码慢,因为实现一个解释型指令需要比实现一个实际的机器指令多得多的指令。在程序能够执行实际工作之前,Python 指令应该被 CPU 理解。因此,Python 解释器会根据 Python 语言的规则检查每个语句,例如为变量存储分配内存、从程序中剔除空格和注释以及其他相关任务。此过程对程序的每一行都重复进行,并显着增加了程序执行的开销。
C 速度很快
另一方面,C 在重新检查源代码上花费的时间不多,并快速转换为 CPU 指令。在执行之前,一个单独的编译器将人类语言程序转换为 CPU 指令,检查错误,分配内存和变量,剔除注释和空格,并优化生成的指令。编译代码的结果链接到其他预制代码中,因此,您将获得可靠的 CPU 指令,这些指令已准备好执行分配的任务,无需过多准备。在内部,Python 代码执行速度较慢的原因是代码在运行时被解释,而不是在编译时被编译成本地代码。
广告