Benchmarks

Last updated 26 December 2007.

We have graphed the performance of several popular compilers on the Gambit benchmarks collected by Marc Feeley, and on a set of R6RS benchmarks collected by Will Clinger. The R6RS benchmarks include improved versions of most Gambit benchmarks and also include new benchmarks that test some of the more important features that were introduced by the R6RS. Please keep in mind that the results of benchmarking should not be taken too seriously.

Fake R6RS Benchmarks

The R5RS-compatible Fake R6RS benchmarks consist of reasonably portable R5RS programs, tested as safe compiled code with generic arithmetic and immutable bindings for all of the standard R5RS procedures. We have timings for two very different machines:

The Benchmarked Systems

Genuine R6RS Benchmarks

The R6RS-conforming Genuine R6RS benchmarks consist of portable R6RS top-level programs. We have timings for two very different machines:

The Benchmarked Systems

There are only three systems that implement enough of the R6RS to make benchmarking worthwhile. We benchmarked all three:

Explanation of Timings

The numbers shown are for a single run on a machine with no other users. Most numbers give the elapsed time in seconds for a single run on a machine with no other users, but cpu time is shown for MIT Scheme. The bar graphs show relative performance. Longer is better.

When no timing is shown for a system, we probably weren't able to get that system to run that particular benchmark without changing the compiler options or the benchmark. For a "Fake R6RS" benchmark, the problem may be caused by non-portable code in the benchmark. We have more confidence in the portability of the "Genuine R6RS" benchmarks.