文档只说 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(使用前将#替换为@)