racket/collects/tests/mzscheme/benchmarks/common/index-template.html
Matthew Flatt 980d48ce19 fix karen and psyntax benchmarks
svn: r17850
2010-01-27 12:56:51 +00:00

63 lines
2.9 KiB
HTML

<html>
<head><title>Some Scheme Benchmarks</title></head>
<body>
<H1>About the Benchmarks</H1>
<p>The <a href="Benchmarks.html">benchmark page</a> shows some benchmark results on a collection of fairly standard
(mostly Gabriel) Scheme benchmarks.</p>
<p>Tables show relative performance, with the actual time for the
fastest run shown on the left. So, by
default, <font color=forestgreen><b>1</b></font> is the fastest,
but select any implementation to normalize the table with respect
to that implementation's speed. A <tt>-</tt> appears when a
benchmark didn't run in an implementation for some reason (possibly
not a good one).</p>
<p><font color="gray" size="-1">Small gray numbers are (relative)
compile times, where the compile time for the <tt>nothing</tt>
benchmark is subtracted from every other benchmark's compile
time.</font></p>
<p>Run times are averaged over three runs. All reported times are CPU time (system plus user).
The times are based on the output of the implementation's <tt>time</tt>
syntactic form for function.</p>
<p>Machine:
<ul>
<li> MacBook Pro, 2.53 GHz, Mac OS X 10.6.2, compiling to 32-bit programs
</ul></p>
<p>Compiler configurations:
<ul>
<li> Bigloo (3.3a): <tt>-06 -call/cc -copt -O3 -copt -fomit-frame-pointer</tt></il>
<li> Chicken (4.3.0): <tt>-no-trace -no-lambda-info -optimize-level 3 -block -lambda-lift</tt></il>
<li> Gambit (4.6.0): <tt>(declare (block) (standard-bindings) (extended-bindings) (safe) (interrupts-enabled))</tt>,
compiled and run with <tt>-:m10000</tt></li>
<li> Ikarus (0.0.4-rc1+ rev 1870): in R6RS library</li>
<li> Larceny (0.97): in R6RS library</li>
<li> PLT (4.2.4): in <tt>module</tt>; for benchmarks that use <tt>set-car!</tt> and <tt>set-cdr!</tt>,
PLT's R5RS support is used</li>
</ul>
These configurations are all &ldquo;safe mode,&rdquo; but they allow the compiler
to assume that built-in Scheme functions are not redefined and that no top-level defintion is ever
changed. Such assumptions correspond to putting the benchmark in an
R6RS library.</P>
<p>In general, we attempt to use the various implementations in a compentent way,
but not in a sophisticated way. For example, we do not tweak
inlining parameters or specify fixnum arithmetic (where appropriate),
which could produce significant improvements from some compilers.</p>
<p>For more benchmarks and a more sophisticated use of a few compilers,
including fixnum- and flonum-specific arithmetic as well as unsafe modes,
see <a href="../log1/Gambit_20benchmarks.html">this other page</a>.</p>
<p>For further details on the benchmarks here, see the benchmark source and
infrastructure, which is available form the PLT SVN repository:</p>
<p align=center>
<a href="http://svn.plt-scheme.org/plt/trunk/collects/tests/mzscheme/benchmarks/common/">http://svn.plt-scheme.org/plt/trunk/collects/tests/mzscheme/benchmarks/common/</a></P>