profile
index
/usr/lib/python1.5/profile.py
 

# Class for profiling python code. rev 1.0  6/2/94
#
# Based on prior profile module by Sjoerd Mullender...
#   which was hacked somewhat by: Guido van Rossum
#
# See profile.doc for more information

   
Modules
                        
marshal
os
string
sys
time

   
Classes
                        
Profile
HotProfile
OldProfile

   
class HotProfile(Profile)
              
snapshot_stats(self)
trace_dispatch_call(self, frame, t)
trace_dispatch_exception(self, frame, t)
trace_dispatch_return(self, frame, t)

   
class OldProfile(Profile)
              
snapshot_stats(self)
trace_dispatch_call(self, frame, t)
trace_dispatch_exception(self, frame, t)
trace_dispatch_return(self, frame, t)

   
class Profile
            #**************************************************************************
# class Profile documentation:
#**************************************************************************
# self.cur is always a tuple.  Each such tuple corresponds to a stack
# frame that is currently active (self.cur[-2]).  The following are the
# definitions of its members.  We use this external "parallel stack" to
# avoid contaminating the program that we are profiling. (old profiler
# used to write into the frames local dictionary!!) Derived classes
# can change the definition of some entries, as long as they leave
# [-2:] intact.
#
# [ 0] = Time that needs to be charged to the parent frame's function.  It is
#        used so that a function call will not have to access the timing data
#        for the parents frame.
# [ 1] = Total time spent in this frame's function, excluding time in
#        subfunctions
# [ 2] = Cumulative time spent in this frame's function, including time in
#        all subfunctions to this frame.
# [-3] = Name of the function that corresonds to this frame.  
# [-2] = Actual frame that we correspond to (used to sync exception handling)
# [-1] = Our parent 6-tuple (corresonds to frame.f_back)
#**************************************************************************
# Timing data for each function is stored as a 5-tuple in the dictionary
# self.timings[].  The index is always the name stored in self.cur[4].
# The following are the definitions of the members:
#
# [0] = The number of times this function was called, not counting direct
#       or indirect recursion,
# [1] = Number of times this function appears on the stack, minus one
# [2] = Total time spent internal to this function
# [3] = Cumulative time that this function was present on the stack.  In
#       non-recursive functions, this is the total execution time from start
#       to finish of each invocation of a function, including time spent in
#       all subfunctions.
# [5] = A dictionary indicating for each function name, the number of times
#       it was called by us.
#**************************************************************************
              
__init__(self, timer=None)
calibrate(self, m)
create_stats(self)
dump_stats(self, file)
get_time(self)
get_time_mac(self)
instrumented(self)
print_stats(self)
profiler_simulation(self, x, y, z)
run(self, cmd)
runcall(self, func, *args)
runctx(self, cmd, globals, locals)
set_cmd(self, cmd)
simple(self)
simulate_call(self, name)
simulate_cmd_complete(self)
snapshot_stats(self)
trace_dispatch(self, frame, event, arg)
trace_dispatch_call(self, frame, t)
trace_dispatch_exception(self, frame, t)
trace_dispatch_i(self, frame, event, arg)
trace_dispatch_l(self, frame, event, arg)
trace_dispatch_mac(self, frame, event, arg)
trace_dispatch_return(self, frame, t)