过多的代码注释会减慢执行速度吗?

10

3
不需要,但如果你在75%的代码上都有注释,那么减少注释并编写易读的代码可能会更有益。 - user395760
1个回答

20

当你运行Python时,第一步是将代码转换成字节码,这就是那些 .pyc 文件的作用。这些文件中的注释已被删除,因此不影响执行*

如果你使用 -O-OO 选项运行Python,则会生成“优化”的 .pyo 文件,这些文件在速度上有所提升,但提升很小,甚至没有提升。主要的区别在于:

  • 使用 -O 选项可以移除断言(assertion);
  • 使用 -OO 选项可以剥离 __doc__ 字符串。由于有时这些字符串是必需的,因此不建议使用 -OO 选项。

*如下方指出,.pyc 文件仅适用于模块。因此每次运行顶级可执行文件都需要重新编译。这一步骤可能会减慢一个庞大的Python可执行文件的运行速度。实际上,大多数代码应该存在于模块中,因此这不是一个问题。


4
这可能会影响您的启动时间,但不会影响长期执行时间。特别是,如果所有内容都被预编译为.pyc文件,则这是一次性成本,而不是每次运行的成本。 - larsks
1
@Wooble,说得好,但我从未注意到这种影响。我能想到的唯一情况是当你运行一个非常长的条带或者在外部Python中进行重复调用Python可执行文件时。实际上,我从来没有遇到过这两种情况。 - Shep
7
如果你遵循最佳实践,你的脚本只是模块的简单包装;setuptools等工具甚至可以自动生成这些包装器。 - Charles Duffy
1
@CharlesDuffy:也许是这样,但OP提到了“执行一个大型.py文件”。当然,注释只会影响启动时间,但每次运行大型脚本时都会受到影响,因为不会创建.pyc文件。 “No”部分基本正确,但解释是误导性的。 - Wooble
1
即使您有一个直接从命令行调用的大型、单片式的.py文件,编写一个简单的“包装器”来导入这个大脚本也是非常容易的。然后,这个大脚本会被编译成.pyc文件,每次运行时只需要解析一行包装器即可。 - kindall
显示剩余4条评论

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