[Python-Dev] Release of astoptimizer 0.3

Victor Stinner victor.stinner at gmail.com
Wed Sep 12 02:40:59 CEST 2012


2012/9/11 Guido van Rossum <guido at python.org>:
> FWIW, I expect that there are few places where len(<constant string>)
> is actually used.

I found one revelant example in the stdlib.

            if path.endswith('.dylib'):
                yield path[:-len('.dylib')] + suffix + '.dylib'
            else:
                yield path + suffix

Cool, I'm not the only developer too lazy to copy/paste len('suffix')
in a Python interpreter and then copy/paste the result in my code :-)

"if text.endswith('suffix'): ... text[:-len('suffix')] ..." is a
common pattern in my code.

> However I expect it to be quite common for ord(),
> where the same reasoning applies.

Projects using the same code base for Python 2 and Python 3 contain a
lot of inefficient code. For example, using the six library, a simple
Unicode literal strings becomes a function code: u('unicode').

I expect that astoptimizer will be able to remove (or at least
reduce!) the overhead of the six library and all checks on the Python
version ("if PYTHON3: ... else: ...").

Victor


More information about the Python-Dev mailing list