This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author xdegaye
Recipients Winterflower, belopolsky, georg.brandl, serhiy.storchaka, xdegaye
Date 2016-06-03.20:15:45
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1464984945.95.0.2239974213.issue20041@psf.upfronthosting.co.za>
In-reply-to
Content
On a 'call' trace event, the bdb dispatch_call() function returns None when there is nothing to trace in this function (no breakpoints). With the changes made by the patch in ceval.c, the costly maybe_call_line_trace() function is not called on each line in this case since f->f_trace is Py_None. This provides the performance enhancements described in issue 16672 without breaking the _hotshot extension module or other extension modules using PyEval_SetTrace().

I agree that the code would be much simpler when f->f_trace is set to NULL by the frame_settrace() setter or trace_trampoline() when it is Py_None. The performance gain described above by using Py_None may not be worth the complexity.

Thanks for looking into this Serhiy.
History
Date User Action Args
2016-06-03 20:15:45xdegayesetrecipients: + xdegaye, georg.brandl, belopolsky, serhiy.storchaka, Winterflower
2016-06-03 20:15:45xdegayesetmessageid: <1464984945.95.0.2239974213.issue20041@psf.upfronthosting.co.za>
2016-06-03 20:15:45xdegayelinkissue20041 messages
2016-06-03 20:15:45xdegayecreate