set-up-profiler &key symbols packages kind interval limit cutoff collapse style gc call-counter show-unknown-frames
A symbol or a list of symbols.
A valid package name, or a list of package names, or :all
.
:profile
, :virtual
or :real
.
An integer greater than or equal to 10000.
An integer or nil
.
An integer or nil
.
A generalized boolean.
:tree
, :list
or nil
.
A generalized boolean.
A generalized boolean.
set-up-profiler
is used to declare the values of the parameters of the profiling function. Three values are required, as follows.
symbols, if non-nil, specifies which symbols are to be monitored by the profiler. Each symbol in symbols is checked to see if it is suitable for profiling and if so it is added to the list *profile-symbol-list*.
If symbols is not passed then packages specifies which symbols are to be monitored. If packages is :all
, then all packages are monitored. All the symbols in the packages are checked as above. If a symbols argument is present then packages is ignored.
kind specifies the way that the time between samples is measured on Unix-like platforms:
Process time only.
Process time and system time for the process.
Real time.
The default value of kind is :profile
.
Note: kind is ignored on Microsoft Windows platforms.
interval specifies the interval in microseconds between profile samples. The minimum value of interval is 10000, that is 10 ms. The default value of interval is 10000.
limit, when non-nil, sets *default-profiler-limit*. This limits the maximum number of lines printed in the profile output (not including the tree). The default value is 100.
cutoff, when non-nil, sets *default-profiler-cutoff*. This is the default minimum percentage that the profiler will display in the output tree. Functions below this percentage will not be displayed. The default is nil
, that is there is no cutoff.
collapse specifies whether functions with only one callee in the profile tree should be collapsed, that is, only the child is printed. When passed, sets *default-profiler-collapse*. The default value of collapse is nil
.
style controls the format of output. If style is not passed or passed as nil
, the format does not change. If style is passed, it can take these values:
The profiler will show the functions seen on the stack.
The profiler will generate a tree of calls seen in the profiler, as well as the output shown by :list
.
The default value of style is :tree
.
gc specifies whether to profile functions inside the memory management code (more accurately, functions that are called on the GC stack) in addition to any other profiling. The default value of gc is nil
.
show-unknown-frames controls whether the profile tree shows nodes where the name of the function is unknown. The default value of show-unknown-frames is nil
.
call-counter specifies whether to add extra code to count calls. The counting is done dynamically. If call-counter is nil
, call counters are not added, and the call counter of all functions is displayed as 0. The default value of call-counter is nil
on Intel-based platforms and t
on other platforms. This is because the counting significantly affects the performance of applications using Symmetric Multiprocessing (SMP).
nil
. However, in most cases the profiler is used to find bottlenecks where the slowdown is hundreds of percentage points and so the effect of call counting is less significant.debug
is greater than 0 at compile-time, and call-counter has no effect.(set-up-profiler :symbols '(car cdr)
:interval 50000)
(set-up-profiler :symbols '(car cdr)
:kind :profile :interval 50000)
add-symbol-profiler
*default-profiler-collapse*
*default-profiler-cutoff*
*default-profiler-limit*
profile
*profile-symbol-list*
remove-symbol-profiler
LispWorks User Guide and Reference Manual - 13 Feb 2015