【问题标题】:is there any kind of performance gain while using .pyc files in python?在 python 中使用 .pyc 文件时是否有任何性能提升?
【发布时间】:2012-03-18 03:48:43
【问题描述】:

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

非常感谢

【问题讨论】:

标签: python pyc


【解决方案1】:

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

从“.pyc”或 '.pyo' 文件比从 '.py' 文件中读取时;唯一的事情 关于“.pyc”或“.pyo”文件的速度更快是 它们已加载。

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

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

【讨论】:

  • .pyo 文件删除了断言语句(可能还有其他优化),但可能没有删除文档字符串;这取决于您使用的是“-O”还是“-OO”。
  • 好的,谢谢。是的,它也是断言语句,它确实取决于您通过的优化级别。但总的来说,它仍然是最小的运行时改进。
  • @ealeon 不知道具体数字。当许多 py 文件不必被解析和编译为字节码时,它可能会为程序的启动时间提供好处
  • 对,但是没有数字我如何证明创建 .pyc 或将其关闭:P
  • 您自己测试和测量,而不是要求基准来推动您的决定:P
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      您将失去便携性。

      here

      从“.pyc”或 '.pyo' 文件比从 '.py' 文件中读取时相比;唯一的事情 “.pyc”或“.pyo”文件的速度更快 它们已加载。

      【讨论】:

        【解决方案5】:

        基于此问题的公认答案:Why are main runnable Python scripts not compiled to pyc files like modules?

        当一个模块被加载时,py 文件被“字节编译”为 pyc 文件。 时间戳记录在 pyc 文件中。这样做是为了不成功 运行更快但加载更快

        【讨论】:

          猜你喜欢
          • 2013-11-22
          • 2016-05-15
          • 1970-01-01
          • 2014-11-30
          • 2019-12-05
          • 2012-05-18
          • 1970-01-01
          • 1970-01-01
          • 2012-12-04
          相关资源
          最近更新 更多