These benchmarks are derived from the benchmarks that Lars Hansen used for his thesis on Older-first garbage collection in practice . That thesis contains storage profiles and detailed discussion for most of these benchmarks.
Apart from a run-benchmark procedure, most of these
benchmarks are intended to run in any R5RS-conforming implementation
of Scheme.  (The softscheme benchmark is an exception.)
Please report any portability problems that you encounter.
To find the main entry point(s) of a benchmark, search for calls to
run-benchmark, which calculates and reports the run time
and any other relevant statistics.
The run-benchmark procedure is implementation-dependent;
see
run-benchmark.chez
for an example of how to write it.
To obtain a gzip'ed tar file containing source code for all of the benchmarks described below, click here .
    dummy
    run-benchmark procedure.
    dynamic
    
    dynamic.sch,
    the code for the benchmark itself
    
    
    dynamic-input-small.sch,
    which is macro-expanded code for the Twobit compiler
    
    
    dynamic-input-large.sch, which is macro-expanded
    code for the Twobit compiler and SPARC assembler.
    
    earley
    
    gcbench
    
    graphs
    
    lattice
    
    nboyer
    boyer benchmark in Scheme).
    nucleic2
    
    perm
    MpermNKL benchmark allocates a queue of size K and then
    performs M iterations of the following operation:  Fill the queue
    with individually computed copies of all permutations of a list of
    size N, and then remove the oldest L copies from the queue.  At the
    end of each iteration, the oldest L/K of the live storage becomes
    garbage, and object lifetimes are distributed uniformly between two
    volumes that depend upon N, K, and L.
    sboyer
    nboyer benchmark with a small but effective
    tweak: shared consing as implemented by Henry Baker.
    softscheme
    defmacro construct.
    Requires an input file; the inputs used with the dynamic
    and twobit benchmarks should be suitable.
    twobit
    
    
    twobit-input-short.sch, the nucleic2
    benchmark stripped of implementation-specific alternatives to its
    R4RS macros
    twobit.sch, the twobit benchmark itself
    
    twobit-smaller.sch
    twobit benchmark without the SPARC assembler.
Last updated 4 April 2001.