On Thu, Sep 1, 2011 at 10:15 AM, Glyph Lefkowitz <gl...@twistedmatrix.com> wrote: > > On Sep 1, 2011, at 5:23 AM, Cesare Di Mauro wrote: > > A simple solution: when tracing is enabled, the new instruction format will > never be executed (and information tracking disabled as well). > > Correct me if I'm wrong: doesn't this mean that no profiler will accurately > be able to measure the performance impact of the new instruction format, and > therefore one may get incorrect data when on is trying to make a CPU > optimization for real-world performance?
Well, profilers already skew results by adding call overhead. But tracing for debugging and profiling don't do exactly the same thing: debug tracing stops at every line, but profiling only executes hooks at the start and end of a function(*). So I think the function body could still be executed using the new format (assuming this is turned on/off per code object anyway). (*) And whenever a generator yields or is resumed. I consider that an annoying bug though, just as the debugger doesn't do the right thing with yield -- there's no way to continue until the yielding generator is resumed short of setting a manual breakpoint on the next line. -- --Guido van Rossum (python.org/~guido) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com