Major Section: OTHER
From the ACL2 logical point of view, (MEMOIZE-SUMMARY)
merely returns
NIL
; however, it also reports on the calls to the members of
(MEMOIZED-FUNCTIONS)
. Each outermost call of a memoized function is both
counted and timed. Recursive calls are not timed. Recursive calls are
counted unless a function was memoized with the :INLINE
parameter
NIL
. A function is billed for the time used by its subroutines,
including recursive calls of itself.
In the report, functions are sorted by the value of the symbol
*MEMOIZE-SUMMARY-ORDER*
, a function that return rationals on which to
sort. Examples of such functions are BYTES-USED
, EVENT-NUMBER
,
EXECUTION-ORDER
, HITS/CALLS
, HONS-CALLS
, TOTAL-TIME
,
TIME/CALL
, and NUMBER-OF-CALLS
. Default is TOTAL-TIME
. Change
*MEMOIZE-SUMMARY-ORDER
* in raw Lisp.
When *MEMOIZE-SUMMARY-SHOW-TABLES
* is T
, information about the sizes
of memoize tables is printed. Change *MEMOIZE-SUMMARY-SHOW-TABLES
* in
raw Lisp.
(CLEAR-MEMOIZE-TABLES)
clears away all remembered function values.
(CLEAR-COUNTERS)
clears all counting and timing information for all
memoized functions. (UNMEMOIZE-ALL)
undoes all memoization.
Times reported are all wall-clock times, unless run-time is explicitly
mentioned. Time is reported in seconds.