[[LarcenyBenchmarkingSection]] Benchmarking ~~~~~~~~~~~~ The `(larceny benchmarking)` library exports the `time` syntax and `run-benchmark` procedure described below. _Syntax time_ ++(time expression)++ Evaluates _expression_ and returns its result after printing approximations to the storage allocated and time taken during evaluation of _expression_. ---------------------------------------------------------------- > (time (fib 30)) Words allocated: 0 Words reclaimed: 0 Elapsed time...: 49 ms (User: 48 ms; System: 0 ms) Elapsed GC time: 0 ms (CPU: 0 in 0 collections.) 832040 ---------------------------------------------------------------- proctempl:run-benchmark[args="name iterations thunk predicate"] Given the _name_ of a benchmark, the number of _iterations_ to be performed, a zero-argument procedure _thunk_ that runs the benchmark, and a unary _predicate_ that checks the result of _thunk_, prints approximations to the storage allocated and time taken by _iterations_ calls to _thunk_. ---------------------------------------------------------------- > (run-benchmark "fib30" 100 (lambda () (fib 30)) (lambda (x) (= x 832040))) -------------------------------------------------------- fib30 Words allocated: 0 Words reclaimed: 0 Elapsed time...: 4828 ms (User: 4824 ms; System: 4 ms) Elapsed GC time: 0 ms (CPU: 0 in 0 collections.) ----------------------------------------------------------------