All Manuals > LispWorks User Guide and Reference Manual > 38 The HCL Package

NextPrevUpTopContentsIndex

print-profile-list

Function
Summary

Prints a report of symbols that have been profiled.

Package

hcl

Signature

print-profile-list &key sort limit cutoff collapse => nil

Arguments

sort

:call, :profile or :top

limit

An integer.

collapse

A generalized boolean.

cutoff

A real number.

Values

print-profile-list returns nil.

Description

The function print-profile-list prints a report of symbols, after profiling using profile, or start-profiling followed by stop-profiling.

If the profiler was set up with style :tree, then a tree of calls is printed first, according to limit, cutoff and collapse. Then a columnar report is printed showing how often each function was called, profiled and found on the top of the stack. This report is sorted by the column indicated by the value of sort.

If the profiler was set up with style :list, then only the columnar report is printed.

sort can take these values:

:call

Sort by the number of times the function was called.

:profile

Sort by the number of times the function was found on the stack.

:top

Sort by the number of times the function was found at the top of the stack.

If sort is not passed then the results are printed as after the profiling run. The default is the value of the variable *default-profiler-sort*.

limit is the maximum number of lines printed in the columnar report as described for *default-profiler-limit*. The default is the value of the variable *default-profiler-limit*.

cutoff is the minimum percentage that the profiler will display in the output tree as described for *default-profiler-cutoff*. The default is the value of the variable *default-profiler-cutoff*.

collapse controls collapsing of the output tree as described for *default-profiler-collapse*. The default is the value of the variable *default-profiler-collapse*.

Notes

You should not call print-profile-list while the profiler is running (see profile and start-profiling) or suspended (see stop-profiling).

Example

First set up the profiler :

CL-USER 1 > (set-up-profiler 
              :symbols 
              '(cadr car eql fixnump + 1+ caadr cddr))
CL-USER 2 > (profile (dotimes (a 1000000 nil)
                        (+ a a)
                        (car '(foo))))

Then call print-profile-list:

CL-USER 3 > (print-profile-list :sort :call)
 
profile-stacks called 327 times
 
Cumulative profile summary
Symbol                                    called  profile   (%)      top   (%)
CADR                                     5000012       13 (  4)       13 (  4)
CDDR                                     3000000        3 (  1)        3 (  1)
EQL                                      2000202        4 (  1)        4 (  1)
FIXNUMP                                  2000003        2 (  1)        2 (  1)
CAR                                      1000000        1 (  0)        1 (  0)
+                                        1000000        3 (  1)        3 (  1)
CAADR                                    1000000        2 (  1)        2 (  1)
1+                                       1000000        2 (  1)        2 (  1)
 
Top of stack not monitored 91% of the time
NIL
Notes

You can suppress printing of those symbols that are currently profiled but which were not called in the profiling run by setting system:*profiler-print-out-all* to nil.

system:*profiler-print-out-all* is a variable defined when the profiler is loaded by set-up-profiler. Its initial value is nil.

See also

*default-profiler-collapse*
*default-profiler-cutoff*
*default-profiler-limit*
*default-profiler-sort*


LispWorks User Guide and Reference Manual - 13 Feb 2015

NextPrevUpTopContentsIndex