[Python-Dev] Joys of Optimization (original) (raw)

Delaney, Timothy C (Timothy) tdelaney at avaya.com
Sun Mar 14 23:29:40 EST 2004


From: Raymond Hettinger [mailto:python at rcn.com]

If you're up for a couple of more runs, I would appreciate independent timing and testing of my dictionary freelist patch, www.python.org/sf/916251 , which may or may not be an improvement.

I'll see what I can do ... I'm still fairly shakey on FreeBSD - this is the first time I've really set it up. Spent 2.5 days building KDE 3.2 from ports because I couldn't work out how to make portupgrade install a new port from packages (yes - I now know it's portupgrade -N or portinstall ;)

Also, here are additional fun scorecards that will probably also all show wins (too bad you can't measure memory consumption or code volume which also improved):

python timeit.py -r9 "[1].pop()" python timeit.py -r9 -s "a=[];b=a.append;c=a.pop" "b(1);c()" python timeit.py -r9 "[None]*500" python timeit.py -r9 -s "dc={}.contains" "dc(1)" python timeit.py -r9 -s "a=b=[None]*500" "a+b" python timeit.py -r9 -s "a=[None]*500" "a[:]" python timeit.py -r9 -s "a=(None,)*50" "list(a)" python timeit.py -r9 -s "import itertools" "list(itertools.repeat(None,500))" python timeit.py -r9 -s "import itertools" "list(itertools.chain(xrange(500)))" python timeit.py -r9 "xrange(500)" python timeit.py -r9 -s "a=[1]; ag=a.getitem", "ag[0]"

Fun! Of course, I'll only be comparing between 2.3 and 2.4 (+ psyco) for any additional stuff. 2.3 was such a huge win over earlier versions.

Tim Delaney



More information about the Python-Dev mailing list