Introduction:
Benchmarking is a method for comparing the performance of different computing platforms. In this project, you will design a benchmark to compare the performance of some aspect of the Java Virtual Machines (JVMs) embedded in a variety of web browsers. Which aspect you choose to benchmark is up to you. Some options for what to benchmark include, integer operations, string operations, floating point operations, method calling, object creation, or graphics operations. This list is not exhaustive and you are free to select some other aspect of the JVMs to benchmark. You will design your benchmark by combining the results from existing benchmarks. See the Assignment section below for the specific requirements for this project.
I am open to allowing variants of this project which benchmark some aspect
of real hardware platforms. Though, if you want to go this route you need to
discuss your plans with me before proceeding.
Assignment:
The first thing you will want to do is to decide on which aspect of the JVM you wish to benchmark. Looking at the Resources below may give you some ideas in addition to the list provided above. I suggest that you play around with these benchmarks for a little while to get a feel for what they are doing and how the results are reported.
Once you have decided on what aspect you wish to benchmark, you will need to select at least three benchmarks that measure that aspect of performance. You will ultimately combine the results from these benchmarks into your own benchmark. Note that you may use benchmarks that measure just your chosen aspect. Or you may use individual results from within a benchmark that measures many different aspects of performance. For example, the CaffeineMark benchmark measures a wide variety of aspects of JVM performance. If you choose to measure graphics performance then you would just want to use the individual results from within the CaffeineMark that deal with graphics, ignoring the others.
After you have identified the aspect of performance that your benchmark will measure and the existing benchmarks that you will be using, you can collect your data. You need to benchmark the JVMs in at least two web browsers. In addition, you also need to benchmark the performance of the Applet Viewer included with the Java JDK. Keep in mind that you will want to run each benchmark multiple times on each JVM to obtain an average score. When reporting your results you must report the average scores for each of the benchmarks that you ran. You also need to report the scores normalized using the Applet Viewer as the base machine. Finally, you also need to combine the individual benchmark scores into a single score for your benchmark.
Once you have collected and analyzed the data from your benchmark, you will
write a scientific paper describing your benchmark and presenting the results.
See the section on The Paper below for more information about the content and
format of the paper.
Using Applet Viewer:
The Applet Viewer is installed on the machines in the CS labs. To use the Applet Viewer to load and execute an applet you will need to enter a command with the following format on the command line:
For example, to load and execute the CaffeineMark benchmark applet use the following command line:
Running this command will bring the CaffeineMark applet up in its own
window and execute it using the JVM within Java's JDK.
The Paper:
You will present your benchmark and the results that you obtained in the form of scientific paper. As a guideline for the length of the paper, I expect that a good job could be done in 7 to 10 pages. In addition to a title your paper should have the following sections:
Finally, your paper must be formatted according to the guidelines provided
in class.
Resources:
The following are links to some of the Java Benchmarking applets that are available on-line. This list is by no means exhaustive and you are encouraged to discover and use any other benchmarks that are applicable to your project.