PyCC is a Python code optimizer. It rewrites your code to make it faster.
Symbol table (variable) lookups don’t seem expensive at first.
# awesome_module.py MAGIC_NUMBER = 7 for x in xrange(10000000): MAGIC_NUMBER * MAGIC_NUMBER
Now let’s make a crude benchmark.
# Generate bytecode file to skip compilation at runtime. python -m compileall awesome_module.py # Now get a simple timer. time python awesome_module.pyc # real 0m0.923s # user 0m0.920s # sys 0m0.004s
What does PyCC have to say about it?
pycc-transform awesome_module.py --constants
MAGIC_NUMBER = 7 for x in xrange(10000000): (7 * 7)
Neat, but what good does that do?
pycc-compile awesome_module.py -- constants time python awesome_module.pyc # real 0m0.473s # user 0m0.469s # sys 0m0.004s
How To Get It¶
pip install pycc
If you want to file a bug, request an optimization, contribute a patch, or just read through the source then head over to the GitHub page.
The project is licensed under the Apache 2 license.