Message267157
| 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. |
|