When code is being profiled, the Lisp process is interrupted regularly at a specified time interval. At each interruption, the Profiler scans the execution stack and records the name of every function found, including a note of the function at the top of the stack. Moreover, a snapshot of the stack is recorded at each interruption, so we know not merely how many times we reach a function call, but also how we reached that call.
When profiling stops (that is, when the code being profiled has stopped execution) the Profiler presents the data in two tabs.