Raymond Hettinger wrote:
My nightly run of pybench went up from the usual 7590ms per run to around 8200ms between Monday night and today. Can anyone explain this ?
Did you compare the outputs? There could be importants hint there! :-)
Maybe this checkin to ceval.c backfired?
revision 2.351 date: 2003/02/26 18:11:50; author: rhettinger; state: Exp; lines: +18 -4 Micro-optimizations.
- List/Tuple checkexact is faster for the common case.
- Testing for Py_True and Py_False can be inlined for faster looping.
That would be a bummer. It looked like a pure win.
I timed the changes with PyStone with N=200000 and got: Base Code: 12.379 12.2716 12.2716
- CheckExact: 12.2746 12.2278 12.3165
- T/F inlined: 12.108 12.1697 12.1259
Since PyStone does weird things to booleans and uses "while 1", I ran a separate test on "while 1" vs. "while True" showed a speedup of "while True" and no measurable change to "while 1".
If your timings show a different result, let me know and I'll back it out.
Ok, I reran the tests using the CVS time machine and the results indicate that this was a false alarm. I am not exactly sure what is causing it though: both figures for the Monday checkout and todays checkout hover around 8200ms per run on average, while most historical figures from last month are in the 7590-7950ms range.
Oh, BTW, your patch does not result in any significant change in pybench results.