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 _______________________________________________ Sugar mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/sugar
