[Python-Dev] Joys of Optimization

Raymond Hettinger python at rcn.com
Sun Mar 14 22:41:51 EST 2004


> I did a bit of benchmarking of various versions on my FreeBSD box ...
I
> may have got a bit carried away ;)

Am still reading the details of your thorough posting.  Excellent
documentation, thank you.

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.

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]"


Raymond Hettinger




More information about the Python-Dev mailing list