On-line JavaTM Data Traces

By Milo M. Martin and Manoj Plakal


[ Overview  |  Trace Details  |  Benchmark Descriptions  |  Download Traces  |  Our Project ]

Java interpreter patch now publicly available

Benchmark Descriptions

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 ]


[note]Last updated on Feb 29 1996