From: W. Trevor King Date: Thu, 12 May 2011 13:40:23 +0000 (-0400) Subject: Mention Stats.print_callers() in doc/hacking.txt. X-Git-Tag: 1.1.0~191 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=34ab6bac16d20365d24886fc6b3c3b1b9e23f5ea;p=be.git Mention Stats.print_callers() in doc/hacking.txt. --- diff --git a/doc/hacking.txt b/doc/hacking.txt index 54be7bc..4c5a464 100644 --- a/doc/hacking.txt +++ b/doc/hacking.txt @@ -71,10 +71,14 @@ execution + childrens' times):: $ python -m cProfile -o profile be [command] [args] $ python -c "import pstats; p=pstats.Stats('profile'); p.sort_stats('cumulative').print_stats(20)" -It's often useful to toss:: +If you want to find out who's calling your expensive function +(e.g. :func:`libbe.util.subproc.invoke`), try:: + + $ python -c "import pstats; p=pstats.Stats('profile'); p.sort_stats('cumulative').print_callers(20)" + +You can also toss:: import sys, traceback print >> sys.stderr, '-'*60, '\n', '\n'.join(traceback.format_stack()[-10:]) -into expensive functions (e.g. :func:`libbe.util.subproc.invoke`) if -you're not sure why they're being called. +into the function itself for a depth-first caller list.