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

Reply via email to