10.2 How Is This Profiler Different From The Old Profiler?
(This section is of historical importance only; the old profiler discussed here was last seen in Python 1.1.)
The big changes from old profiling module are that you get more information, and you pay less CPU time. It's not a trade-off, it's a trade-up.
To be specific:
- Local stack frame is no longer molested, execution time is now charged
to correct functions.
- Profiler execution time is no longer charged to user's code,
calibration for platform is supported, file reads are not done by
profiler during profiling (and charged to user's code!).
- Overhead CPU cost was reduced by more than a factor of two (perhaps a
factor of five), lightweight profiler module is all that must be
loaded, and the report generating module (pstats) is not needed
during profiling.
- Cumulative times in recursive functions are correctly calculated;
recursive entries are counted.
- Distinct profiles runs can be added together forming a comprehensive
report; functions that import statistics take arbitrary lists of
files; sorting criteria is now based on keywords (instead of 4 integer
options); reports shows what functions were profiled as well as what
profile file was referenced; output format has been improved.
See About this document... for information on suggesting changes.