As part of Sun Labs' research into the behavior of JavaTM Virtual Machines, I have translated the
well-known Richards and DeltaBlue benchmarks into the Java language.
From this page you can read about the benchmarks, run the benchmarks
in your browser, download the class files of the benchmarks for you to
run within non-browser environments, and download the sources of the
benchmarks for study.
What are Richards and DeltaBlue?
Richards is an interesting medium-sized language benchmark (400-500
lines). It simulates the task dispatcher in the kernel of an
operating system. The original version was written in BCPL by Martin Richards at
Cambridge University, England. It has since been translated into many
languages, including C, C++ and Smalltalk. Follow this link to read
more about the Richards benchmark and
the various versions in the Java programming language.
I have also created a version of the DeltaBlue constraint solver
benchmark in the Java programming language. DeltaBlue is about 1000
lines of Java code. DeltaBlue was originally implemented by John
Maloney while at the University of Washington, and has also been
translated into many languages including C, C++, Smalltalk. The
algorithm is described in "The DeltaBlue Algorithm: An Incremental
Constraint Hierarchy Solver" by Bjorn N. Freeman-Benson and John
Maloney, Communications of the ACM, January 1990. N.B. A bug was
found in the Java DeltaBlue by John Reppy of the University of Chicago
and reported on May 11, 2006. His fix was included and pushed out
shortly after; please do not use any version of DeltaBlue.java from
before that date.
How do I run the benchmarks?
There are several ways of running the benchmarks:
Right now, from inside your Java-enabled browser. Follow this
link to a page containing an applet that can run
the benchmarks.
By downloading the sources for the benchmarks, compiling the
sources into class files within your own programming environment, and
then executing the resulting class files. Follow this link for the licensing terms and how to download the source
files.
Acknowledgements and Credits
I am indebted to:
Martin Richards, for creating the Richards benchmark, and
granting permission to distribute a translation of the benchmark.
L. Peter Deutsch, for writing the Smalltalk version of the Richards
benchmark, and granting permission to distribute a translation of the
benchmark.
John Maloney, for creating the DeltaBlue benchmark, and
granting permission to distribute a translation of the benchmark.
Jon Gibbons, for providing one of the Java variants of the Richards
benchmark.
Urs Hölzle, for providing a C++ translation of the Deutsch implementation.
Alex Jacoby, for writing the applet that is used to run the
benchmarks within a browser, and for assisting with the benchmarks
themselves.
John Reppy, for finding a bug in Strength.nextWeaker.
Sun, Sun Microsystems, the Sun logo and Java are trademarks or
registered trademarks of Sun Microsystems, Inc., in the United States
and other countries.
Maintained by Mario Wolczko
Last modified: Thu May 11 17:31:54 PDT 2006