By Milo M. Martin and Manoj Plakal
[ Overview | Trace Details | Benchmark Descriptions | Download Traces | Our Project ]
Java interpreter patch now publicly available
Here we describe the 9 benchmarks that were used for trace generation. Where
possible, we provide links to the source code and the inputs we provided.
N-Queens (Java source, C++ source)
This benchmark solves the famous problem of calculating the number of ways
of placing N queens in non-attacking positions on a NxN board. We chose N
= 10.
Matrix Multiplication (Java source, C++ source)
This benchmark multiplies two NxN real-valued matrices (with random initial
values). We chose N = 64.
Cellular Automaton (Java source, C++ source)
This benchmark simulates a 1-dimensional cellular automaton. The parameters
of interest are the size of the automaton (number of cells) and the number
of time steps to be simulated. We traced the simulation of a 1000-cell automaton
for 100 time steps.
Quicksort (Java source, C++ source)
This benchmark applies Tony Hoare's quicksort algorithm to sort N random
numbers. We chose N = 50,000. The source code has been modified from a generic
quicksort algorithm written by Jim Gosling and freely distributed by Sun.
Word Frequency Counter (Java source, C++ source)
This benchmarks computes the frequencies of the words appearing in its input.
It uses dynamic data structures and has been adapted from a benchmark used
in the SUIF/lcc test suites. The input chosen was the text of the
Book of Revelation according to St John from the New Testament of the King
James version of the Bible
(available on-line).
Linpack (Java source, C++ source)
This benchmark is an optimized version of a Java port of the Linpack benchmark.
This benchmark was originally available as an applet from
Jonathan Hardwick's
site. We converted the applet into stand-alone Java and C++ code. He
has since upgraded his applet, so we are providing the code we originally
used for generating the traces.
Java Compiler
This benchmark is the Java compiler javac provided as a part of
Sun's JDK 1.0.2. We traced it while it compiled (without optimization)
SpreadSheet.java,
a demo applet provided with the JDK 1.0.2 distribution, in directory
demo/SpreadSheet of the JDK directory tree.
JavaCC-generated Java parser
This benchmark is a Java parser generated by
JavaCC (formerly known as Jack),
a LL(k) parser-generator that generates parsers in Java. We used the binary
distribution of JavaCC version 0.6 (beta) and generated the Java parser from
a sample Java 1.0.2 grammar provided with the distribution
(examples/JavaGrammars/Java1.0.2.jj). The generated Java parser
was compiled with -O optimization using javac and run with one of
its own (generated) source files JavaParserTokenManager.java as
input.
Kawa : a Scheme Interpreter in Java
This benchmark is a Scheme interpreter written in Java. We used the binary
distribution of Kawa version 1.2
and traced it as it executed a Scheme program to compute the first 100 digits
of Pi. The program
(pi.scm)
is available as part of the
GNU Scheme release
sm4e1 distribution.
[ Overview | Trace Details | Benchmark Descriptions | Download Traces | Our Project ]
Last updated on