文档只说Python解释器执行"基本优化",而没有详细说明.很明显,它依赖于实现,但是有没有什么方法可以感觉到什么类型的东西可以优化,以及它可以节省多少运行时间?
使用-O有什么坏处吗?
我所知道的唯一一件事是-O禁用了assert
,但人们大概不应该将assert
用于生产中仍然可能出错的事情.
文档只说Python解释器执行"基本优化",而没有详细说明.很明显,它依赖于实现,但是有没有什么方法可以感觉到什么类型的东西可以优化,以及它可以节省多少运行时间?
使用-O有什么坏处吗?
我所知道的唯一一件事是-O禁用了assert
,但人们大概不应该将assert
用于生产中仍然可能出错的事情.
在Python 2.7中,-O
具有以下效果:
.pyo
__debug__
是假的此外,-OO
具有以下效果:
为了验证CPython不同版本的效果,请将源代码grep为Py_OptimizeFlag
.
官方文件链接:https://docs.python.org/2.7/tutorial/modules.html#compiled-python-files