Following are examples of running tcl_cputime.d.
Here it runs while we execute Code/Tcl/func_slow.tcl
Tracing... Hit Ctrl-C to end.
^C
Top 10 counts,
PID TYPE NAME COUNT
16038 cmd set 2
16038 cmd namespace 3
16038 cmd puts 3
16038 cmd lappend 4
16038 cmd lsearch 4
16038 cmd if 8
16038 cmd info 11
16038 cmd file 12
16038 cmd proc 12
0 total - 82
Top 10 exclusive on-CPU times (us),
PID TYPE NAME TOTAL
16038 cmd namespace 130
16038 cmd puts 232
16038 cmd if 310
16038 cmd tclInit 315
16038 cmd file 411
16038 cmd source 760
16038 proc func_a 535521
16038 proc func_b 1071082
16038 proc func_c 1619323
0 total - 3228670
Top 10 inclusive on-CPU times (us),
PID TYPE NAME TOTAL
16038 cmd source 1359
16038 cmd uplevel 1367
16038 proc tclInit 1865
16038 cmd tclInit 2180
16038 proc func_c 1619360
16038 cmd func_c 1619404
16038 proc func_b 2690525
16038 cmd func_b 2690568
16038 proc func_a 3226247
16038 cmd func_a 3226275
We can see that the output is in three sections. The first section represents
the ten most commonly executed commands while the script is tracing.
The exclusive function on-CPU times show that func_a spent around 0.5 seconds
on-CPU, func_b spent about 1.0 seconds, and func_c, 1.6 seconds. This excludes
time spent in other procedures or commands.
The inclusive function on-CPU times show the time spent by these procedures in
total, including the time spent in other functions called, and since func_a
called func_b which called func_c, these times make sense.
These on-CPU times are the time the thread spent running on a CPU, from when
the function began to when it completed. This does not include time
spent off-CPU time such as sleeping for I/O or waiting for scheduling.
On-CPU times are useful for showing who is causing the CPUs to be busy.
See Notes/ALLoncpu_notes.txt for more details. Also see
detailed explanation of exclusive vs inclusive function time.