Python 优化(-O 或 PYTHONOPTIMIZE)有什么作用?

2023-12-29

文档只说 Python 解释器执行“基本优化”,但没有详细说明。显然,它依赖于实现,但是有什么方法可以了解可以优化什么类型的东西,以及它可以节省多少运行时间?

使用 -O 有什么缺点吗?

我唯一知道的是 -O 禁用assert,但大概不应该使用assert对于生产中仍然可能出错的事情。


在Python 2.7中,-O具有以下效果:

  • 字节码扩展更改为.pyo
  • sys.flags.optimize 设置为 1 https://stackoverflow.com/a/17317851/6650102
  • __debug__是假的
  • 断言不会被执行

此外-OO具有以下效果:

  • sys.flags.optimize 设置为 2 https://stackoverflow.com/a/17317851/6650102
  • 文档字符串不可用

要验证不同版本的 CPython 的效果,请 grep 源代码Py_OptimizeFlag.

官方文档链接:https://docs.python.org/2.7/tutorial/modules.html#compiled-python-files https://docs.python.org/2.7/tutorial/modules.html#compiled-python-files

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 优化(-O 或 PYTHONOPTIMIZE)有什么作用? 的相关文章

随机推荐