Message267157
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. |
|
Date |
User |
Action |
Args |
2016-06-03 20:15:45 | xdegaye | set | recipients:
+ xdegaye, georg.brandl, belopolsky, serhiy.storchaka, Winterflower |
2016-06-03 20:15:45 | xdegaye | set | messageid: <1464984945.95.0.2239974213.issue20041@psf.upfronthosting.co.za> |
2016-06-03 20:15:45 | xdegaye | link | issue20041 messages |
2016-06-03 20:15:45 | xdegaye | create | |
|