unexpected results from tcllib profiler?

d-list-9_at_jendaveallen.com
Date: 03/26/05


Date: 26 Mar 2005 07:28:28 -0800

Folks,

I am a little confused about the tcllib profiler package. I am using
the 8.4.9 distribution on Windows XP, which includes profiler 0.2.2.

Here is my elaborate test program.

   package require profiler
   ::profiler::init
   proc c1 { a } { for {set i 0} {$i<2000} {incr i} {;} }
   proc c2 { a } { for {set i 0} {$i<2000} {incr i} {;} }
   proc parent { } { for {set i 0} {$i<2000} {incr i} { c1 $i ; c2 $i }
}
   parent
   ::profiler::dump ::parent

The output is:

   ::parent {callCount 1 callerDist {GLOBAL 1} compileTime 2816000
   totalRuntime 2816000 averageRuntime 0 stddevRuntime 0
   covpercentRuntime 0 descendantTime 0 averageDescendantTime 0
   descendants {}}

The descendants data I would expect is like {c1 2000 c2 2000}.
The time reporting also seems wrong; how can all the time be
reported as compile time with zero descendant time? All the
time is spent in the children.

Am I missing something, or is this output completely wrong?

- Dave Allen: d-list-9@jendaveallen.com