将解释后的脚本转换为可执行文件会提高速度吗?

时间:2015-08-23 21:40:16

标签: python performance compilation py2exe

一般来说,我很好奇,是否使用将非exe转换为exe增加速度的实用程序?我的理解是他们只是将解释器打包在exe中。

具体来说,如果你有python脚本并在其上使用py2exe,生成的可执行文件的运行速度是否比.py快?我的老板似乎有这样的假设,但我不太确定。

特别是在处理多个模块时。例如,假设您有模块first.pysecond.py。您将它们全部编译为可执行文件。当它们是.py时,second.py可以被称为

from second import main
main()

既然他们是可执行文件,你必须开始一个新进程,这肯定会慢一些吗?

subproccess.call(["second.exe"], shell=True)

我能理解这一点吗?或者import来自另一个python模块实际上是否启动了python解释器的新实例?

在我们的案例中,目标平台始终是Windows。

1 个答案:

答案 0 :(得分:1)

你的老板被误导了。所有py2exe都会将您的程序打包成一个能够无依赖地运行的独立包。它仍然是在同一个解释器上运行的相同字节码(好吧,无论打包的是什么)。

请参阅this other answer了解所有"优化"你可以放弃使用-o标志。

另外,是的,肯定会运行一些基准来确认。