NAME

       profiler - Tcl source code profiler


SYNOPSIS

       package require profiler ?0.1?

       ::profiler::init

       ::profiler::dump ?pattern?

       ::profiler::print ?pattern?

       ::profiler::reset ?pattern?

       ::profiler::sortFunctions key

_________________________________________________________________


DESCRIPTION

       The  profiler  package  provides  a simple Tcl source code
       profiler.  It is a function-level profiler;  that  is,  it
       collects  only  function-level  information,  not the more
       detailed line-level information.  It operates by  redefin­
       ing  the Tcl proc command.  Profiling is initiated via the
       ::profiler::init command.


COMMANDS

       ::profiler::init
              Initiate profiling.  All procedures  created  after
              this  command  is called will be profiled.  To pro­
              file an entire application, this  command  must  be
              called before any other commands.

       ::profiler::dump pattern
              Dump  profiling  information  for the all functions
              matching pattern.   If  no  pattern  is  specified,
              information  for  all  functions  will be returned.
              The result is a list of key/value pairs  that  maps
              function  names to information about that function.
              The information about each function is  in  turn  a
              list  of  key/value pairs.  The keys used and their
              values are:

              totalCalls
                     The total number of times  functionName  was
                     called.

              callerDist
                     A list of key/value pairs mapping each call­
                     ing function that called functionName to the
                     number of times it called functionName.

                     The  runtime,  in clock clicks, of function­
                     Name the first time that it was called.

              totalRuntime
                     The sum of the  runtimes  of  all  calls  of
                     functionName.

              averageRuntime
                     Average runtime of functionName.

              descendantTime
                     Sum  of  the  time  spent  in descendants of
                     functionName.

              averageDescendantTime
                     Average time spent in descendants  of  func­
                     tionName.

       ::profiler::print ?pattern?
              Print   profiling  information  for  all  functions
              matching pattern.   If  no  pattern  is  specified,
              information  about all functions will be displayed.
              The return result is a human  readable  display  of
              the profiling information.

       ::profiler::reset ?pattern?
              Reset   profiling  information  for  all  functions
              matching pattern.   If  no  pattern  is  specified,
              information will be reset for all functions.

       ::profiler::sortFunctions key
              Return  a  list of functions sorted by a particular
              profiling statistic.  Supported values for key are:
              calls,  exclusiveTime, compileTime, nonCompileTime,
              totalRuntime,  avgExclusiveTime,  and   avgRuntime.
              The  return  result  is a list of lists, where each
              sublist consists of a function name and  the  value
              of key for that function.


KEYWORDS

       profile, performance, speed


Man(1) output converted with man2html