To profile a Lisp form using the set-up from the previous example, type:
(profile <forms>)
Profile stacks called 40 times
Symbol Called Profile (%) Top (%)
CAR 400 20 (50) 2 (5)
CDR 300 15 (39) 3 (7)
Top symbol not monitored 88% of the time.
This means that during the execution of the form, the function car
was called four hundred times, the function cdr
was called three hundred times, and the Lisp process was interrupted forty times by the profiler. In half of these interrupts it found the function car
on the stack, but only on two of these occasions was car
on the top of the stack. Thirty-five times the function on the top of the stack was neither car
nor cdr
.
You can control the order of the output from the profiler using print-profile-list
.