On 9/3/07, Nicholas Bastin <[EMAIL PROTECTED]> wrote: > I've been doing some profiling of 3.0 vs. 2.6 release builds on > Windows XP for the purpose of hopefully closing the performance gap. > This data is very preliminary, but I thought I'd throw it out here in > case someone else also wanted to look into this. Also, possibly > useful for comparing against profiling data on other platforms. The > table below just lists functions and speed differentials in 3.0 vs. > 2.6, ordered by the functions in which we spend the most total time. > > NOTE: This data is time sampling, not call graph. Added time could > come from either more calls, or longer calls. > > + 11.5% PyEval_EvalFrameEx > + 40.2% lookdict (replacing lookdict_string) > +312.9% PyDict_GetItem > - 13.2% call_function > + 19.4% fast_function
lookdict_string appears to still use the old string type, rather than unicode. This prevents it from being used. It's probably not too hard to fix. > Other notes: > * PyLong_FitsInLong consumes about 2% of total pystone runtime. > * unicode_compare consumes the exact same time in 3.0 that > string_richcompare consumed in 2.6. Either these functions share a > similar CPU profile, or their call counts vary dramatically. > > Top 5 functions in Python 2.6: > > * PyEval_EvalFrameEx (48.66%) > * lookdict_string (5.76%) > * call_function (4.80%) > * frame_dealloc (2.80%) > * fast_function (2.48%) > > Top 5 functions in Python 3.0: > > * PyEval_EvalFrameEx (44.37%) > * lookdict (6.66%) > * PyDict_GetItem (4.63%) > * unicode_hash (3.51%) > * call_function (3.38%) -- Adam Olsen, aka Rhamphoryncus _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com