[sugar] python performance

Neal Norwitz nnorwitz at gmail.com
Tue Mar 6 02:16:22 EST 2007


I'd like to do a bunch of speed improvements to Python to help
alleviate some of the performance issues.  Currently I know of 2
things which should definitely help:
  * Use PGO (program guided optimization)
  * Disable tracing/profiling of C code

PGO is not part of the current build process.  I've heard of getting
10-20% speed improvement with no change in functionality.  I can add
it to the Makefile, however, this would not normally be back ported to
the 2.5 branch.

Disabling tracing of C code eliminates a feature, but one that is
probably only useful for heavy development and not necessary for the
released software.  I think the feature was added in Python 2.4, so
it's relatively new.  Removing this gains about 5% (on my box) without
PGO.  I don't know how much it gains with PGO which I would do first.

For Python 2.6, I already modified the calling convention for most of
the functions in the math module.  This provides ~15% speed up (IIRC)
when calling something like math.sin.  These changes are checked into
the trunk, but not back ported to 2.5.  I have other ideas to speed
things up (and a bunch of possible patches).  However, without any
specific apps to focus on for OLPC, it will be hard to do too much.  I
also need to know how to get these changes into the sugar baseline
(see my packaging python message).

Is any code that is known to have perf problems?  I can code review
for problems.

n


More information about the Sugar mailing list