From 34ab6bac16d20365d24886fc6b3c3b1b9e23f5ea Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Thu, 12 May 2011 09:40:23 -0400 Subject: [PATCH] Mention Stats.print_callers() in doc/hacking.txt. --- doc/hacking.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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. -- 2.26.2