[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Results on Lisp Profilers



A couple of weeks ago, I posted an inquiry to this mailing list about the
existence of profiling tools for Common Lisp.  Here's a summary of my
responses:

CMU's Common Lisp has a timing package.  Apparently, it is "public domain, and
public domain, and people can get our library from ISI or some such
organization in California."  It didn't appear very useful for my purposes
because "if functions A and B are profiled, and A calls B, then the accumulated
time for A will include time spent in B."  Since a lot of my code is recursive
(directly and indirectly), this policy would be unusable.

Stuart Shapiro at Buffalo (shapiro@cs.buffalo.edu) sent me his profiler.  In
this tool, "statistics kept are number of times called and amount of run-time
spent in the function (minus time spent in dynamically embedded profiled
functions)."

Finally, Lois Lew from Lucid (sun-support@lucid.com on ARPA or
...!sun!edsel!sun-support on UUCP) sent me their profiler.  It also accounts
for dynamically embedded profiled functions.  In addition to timing, it also
shows how much heap space was allocated during the function's execution.  This
seems a very useful feature, given the "buy now -- pay later" aspect of most
garbage collectors.  I don't have enough experience with it yet, but so far I
like it.  Here is an example of its output:

    -> (print-all-monitors)
     Monitor information for SIMPL
    Number of calls    : 10
    Time (secs)        : 0.291
    Avg. time / call   : 0.029
    Words of consing   : 2770
    Avg. words / call  : 277.000

     Monitor information for GC
    Number of calls    : 1
    Time (secs)        : 0.116
    Avg. time / call   : 0.116
    Words of consing   : 0
    Avg. words / call  : 0.000

     Monitor information for COPY-LTERM
    Number of calls    : 2
    Time (secs)        : 0.039
    Avg. time / call   : 0.019
    Words of consing   : 32
    Avg. words / call  : 16.000

     Monitor information for SOLVE
    Number of calls    : 2
    Time (secs)        : 0.796
    Avg. time / call   : 0.398
    Words of consing   : 6766
    Avg. words / call  : 3383.000

    NIL
    -> 

				- Conal