What does Python optimization (-O or PYTHONOPTIMIZE) do?

Question:

The docs only say that Python interpreter performs “basic optimizations”, without going into any detail. Obviously, it’s implementation dependent, but is there any way to get a feel for what type of things could be optimized, and how much run-time savings it could generate?

Is there any downside to using -O?

The only thing I know is that -O disables assert, but presumably one shouldn’t use assert for things that could still go wrong in production.

Asked By: max

||

Answers:

In Python 2.7, -O has the following effect:

In addition -OO has the following effect:

To verify the effect for a different release of CPython, grep the source code for Py_OptimizeFlag.

Link to official documentation: https://docs.python.org/2.7/tutorial/modules.html#compiled-python-files

Answered By: Martin v. Löwis
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.