8

我们可以写一段python代码,放到已经编译好的“.pyc”文件中使用。我想知道在性能方面是否有任何收获,或者它只是一种对代码进行分组的模块化方式。

非常感谢

4

5 回答 5

9

在您的程序过程中没有性能提升。它只会提高启动时间。

从 '.pyc' 或 '.pyo' 文件读取程序不会比从 '.py' 文件读取程序运行得更快;'.pyc' 或 '.pyo' 文件唯一更快的是它们的加载速度。

http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html

pyo 文件是下一个优化,只需从您的代码中删除文档字符串。

于 2012-02-28T16:41:02.530 回答
1

我不确定 .pyc 文件(很小的收获是至少不再创建 .pyc 文件),但是 Python 解释器有一个“-O”标志,可以生成优化的字节码(.pyo 文件)。

于 2012-02-28T16:39:04.213 回答
1

是的,仅仅是因为第一次执行 .py 文件时,它被编译为 .pyc 文件。所以基本上你必须添加编译时间。之后,应始终使用 .pyc 文件。

于 2012-02-28T16:39:17.810 回答
0

您将获得 Python 运行时将源代码解析和编译为字节码所花费的几分之一秒,这仅在第一次运行/导入时发生。

您将失去便携性。

这里

从 '.pyc' 或 '.pyo' 文件读取程序不会比从 '.py' 文件读取程序运行得更快;'.pyc' 或 '.pyo' 文件唯一更快的是它们的加载速度。

于 2012-02-28T16:39:06.180 回答
0

基于这个问题的公认答案:为什么主要的可运行 Python 脚本没有像模块一样编译成 pyc 文件?.

加载模块时,py 文件被“字节编译”为 pyc 文件。时间戳记录在 pyc 文件中。这样做不是为了让它运行得更快,而是为了加载得更快

于 2012-02-28T16:39:53.067 回答