Mention Stats.print_callers() in doc/hacking.txt.
authorW. Trevor King <wking@drexel.edu>
Thu, 12 May 2011 13:40:23 +0000 (09:40 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 12 May 2011 13:40:23 +0000 (09:40 -0400)
doc/hacking.txt

index 54be7bcda1d0a489d337994e787299763877fb92..4c5a4640b2886677bbd121be23911add887d4033 100644 (file)
@@ -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.