运行时编译:这怎么可能不是性能损失?

时间:2010-06-27 04:21:24

标签: performance interpreted-language runtime-compilation

我听说某些类型的运行时编译不会影响性能。官方Python文档断言运行.pyc文件并不比.py快。 (我现在找不到链接。)这怎么可能?从.py生成字节码是否需要时间?

像PHP这样的语言呢?是不是每次执行都要编译它们?你为什么要这个?如果同一个脚本将运行多次,这似乎是浪费时间。

2 个答案:

答案 0 :(得分:4)

如果没有您正在阅读的实际文档的上下文,我们无法肯定地说,但我认为您可能会误解“性能”的含义。

如果必须在启动时将应用程序编译为字节码,应用程序启动速度较慢,但​​运行的速度较慢。没有资格,有人谈论“表现”几乎从不涉及启动时间。

答案 1 :(得分:1)

Python检查.pyc文件,当它不存在时,或者如果它已过期,它将从.py文件重新创建字节码。

如果文件系统不可写,则在程序运行之前,此步骤仍会发生在RAM中。

因此Python在运行程序时不会逐行解释代码。

结果是,如果.pyc文件存在并且是最新的,那么程序将会更快地开始运行,但执行速度将是相同的