sunterlib/s48/profile/README

42 lines
1.1 KiB
Plaintext

The structure MINI-PROFILER implements a minimalist profiler for
Scheme48 and scsh. Time is measuered using Scheme48's RUN-TIME
function from TIME.
Functions
=========
(profile-init!) -> unspecific
Initialize or reset the profiler. Calling this function will delete
all information collected during previous runs of the compiler.
(display-profile . port) -> unspecific
Print the profiling information acquired to PORT. If PORT is not
specified use CURRENT-OUTPUT-PORT.
Syntax
======
(account-for name body)
Evaluate BODY and stop the time needed for doing so. Account the
time needed for NAME. Especially useful for profiling code that
makes heavy use of high-order functions or lazy evaluation. Example:
(define (compile-funcall exp)
(account-for compile-funcall
(let ((op (compile (funcall-op exp)))
(arg (compile (funcall-arg exp))))
(lambda (env)
(account-for eval-funcall
(op (arg env stop-k)))))))
define-prof
DEFINE-PROF is a substitute for Scheme's DEFINE. Mini-profiler
accounts the time needed to evaluate the procedure bound with DEFINE
for DEFINE name.