[Python-Dev] Re: Who cares about the performance of these opcodes? (original) (raw)

Andrew MacIntyre andymac at bullseye.apana.org.au
Tue Mar 9 17:07:04 EST 2004


On Tue, 9 Mar 2004, A.M. Kuchling wrote:

For a planned PyCon lightning talk, I'm benchmarking various combinations of optimizer options. One interesting result: CVS Python gets 25997 pystones on my machine when compiled with -O3 (the default), but 26707 when compiled with gcc's -Os flag. -Os optimizes for size, running the subset of the -O2 optimizations that don't increase code size.

In my own experiments along these lines, I found that the best results with various versions of gcc (2.8.1, 2.95.2, 3.2.1 on OS/2; 2.95.4, 3.2.3, 3.3.2 on FreeBSD) was to compile ceval.c with -Os (-O2 on 2.8.1, which doesn't have -Os) and the rest of Python with -O3.

The OS/2 builds were running on an AMD Athlon 1.4GHz (Thunderbird core), and the FreeBSD builds were running on an AMD Athlon XP 1600. With the compilers that support -march=athlon[-xp], another 4-5% can be had too. The OS/2 builds also have -fomit-frame-pointer, which makes them marginally faster than the FreeBSD builds of the same gcc version and optimisation level.

I haven't seen your results (full -Os build as fast or faster than full -O3 build), although compiling with -Os with gcc 3.2.x is as fast as -O3 with 2.95 and earlier.

Regards, Andrew.

-- Andrew I MacIntyre "These thoughts are mine alone..." E-mail: andymac at bullseye.apana.org.au (pref) | Snail: PO Box 370 andymac at pcug.org.au (alt) | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia



More information about the Python-Dev mailing list