[sugar] python performance
Neal Norwitz
nnorwitz
Tue Mar 6 02:16:24 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-devel
mailing list