为什么Python只有在导入脚本时才会保存字节码?

5

鉴于执行Python字节码比运行原始源代码更快,因为Python不必重新编译,那么为什么Python只在导入脚本时保存已编译的字节码呢?每次执行脚本保存.pyc文件不是更好吗?

2个回答

7

你的Python解释器启动时间总是需要时间的(即使你可能注意不到),所以简单地说,这并不重要,更方便的方法是启动一个可能已由您更新的脚本,而不是手动编译和执行脚本。

比运行原始源代码更快

顺便提一下,Python不会“运行”源代码。主脚本的初始源代码也会被编译和执行。

另外请记住(Python入门):

从“.pyc”或“.pyo”文件中读取程序时,其运行速度并不比从“.py”文件中读取更快;唯一更快的是“.pyc”或“.pyo”文件加载的速度。

此外,他们还说:

当通过在命令行上给出脚本名称运行脚本时,该脚本的字节码永远不会被写入“.pyc”或“.pyo”文件。因此,通过将大部分代码移动到模块并具有导入该模块的小型引导脚本,可以减少脚本的启动时间。还可以直接在命令行上命名“.pyc”或“.pyo”文件。

0

你可以随时测试它。这里有一个来自我的机器的轶事:

~$ time python test.py
real    0m0.029s
user    0m0.025s
sys     0m0.004s
~$ time python test.pyc

real    0m0.031s
user    0m0.025s
sys     0m0.004s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接