sunterlib/s48/profile
..
AUTHORS
BLURB
NEWS
README
no-profile.scm
packages.scm
pkg-def.scm
profile.scm

README

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.