The goal of profiling is to find out the bottlenecks of the program, such as which function consumes the most time, which function is called most times etc. in order to improve application performance by "fixing" those hot spots.

  • Metering by Mark Kantrowitz .
  • SLIME provides an interface to the profilers of supported Lisps with its slime-profile-* functions.

Metering has been adapted for the current times by Daniel KochmaƄski. It's portable and very capable. Project home and repository.

Works on all active implementations.

SBCL has two: sb-ext:profile which instruments functions, and the statistical sampling sb-sprof contrib (based on CMUCL work).

(sb-profile:profile function names) (function call) (sb-profile:report)


(sb-sprof:with-profiling (:report :graph) (function call))

Programming Tips