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

Does converting an interpreted script to an executable increase speed?

总的来说,我很好奇,使用将非 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。

你的老板被误导了。 py2exe 所做的只是将您的程序打包成一个能够 运行 无需依赖项的自包含程序包。它仍然是相同的字节码 运行ning 在同一个解释器上(好吧,无论打包什么)。

请参阅 this other answer 了解所有 "optimization" 您可以不用 -o 标志的情况。

此外,是的,绝对 运行 一些基准可以自己确认。