13.10.2014 Views

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

OPTIMIZING THE JAVA VIRTUAL MACHINE INSTRUCTION SET BY ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

83<br />

provided by only two vendors. IBM’s Jikes RVM executed on the Pentium III and<br />

Pentium 4 represent ‘compile only’ strategies that do not make use of an interpreter<br />

at any time during execution. At the opposite end of the scale, Sun Java build<br />

1.5.0 05-b05, interpreted mode executes the application using only an interpreter.<br />

This is accomplished using the standard Sun virtual machine. However, the -X:int<br />

command line argument is employed which disables the JIT compiler. The remaining<br />

Sun virtual machines were executed in mixed mode, using both an interpreter and a<br />

JIT compiler.<br />

5.2.1 Performance Results<br />

Performance results were generated by measuring the runtime of 20 distinct benchmarks<br />

on the platforms outlined in Table 5.2. A total of 5 distinct test conditions<br />

were considered. The baseline condition executed the original unmodified benchmarks<br />

using the original, unmodified Java class library in order to establish the expected<br />

runtime. All other conditions were reported as a percentage of this runtime.<br />

The remaining four test conditions despecialized an increasingly large number of<br />

the bytecodes listed in Table 5.1. These included the despecialization of 16, 32, 48 and<br />

62 specialized bytecodes respectively. Because the bytecodes are listed in increasing<br />

order of frequency, it was expected that the first despecializations would have little if<br />

any impact on application runtime while later despecializations might show a decrease<br />

in performance.<br />

Each benchmark was executed at least six times in order to minimize the the<br />

possibility that factors beyond the author’s control would skew the results. Such<br />

factors include the behaviour of background processes, the process scheduler, memory<br />

manager and disk controller on the test machines. After the tests were performed,<br />

the highest and lowest result were discarded and the average of the four remaining<br />

results was presented.<br />

Figure 5.1 shows the average performance impact despecialization had on each individual<br />

benchmark across all computing platforms. The y-axis indicates the relative<br />

difference between execution of the unmodified benchmark and the performance of<br />

each of the despecialization conditions. The x-axis provides a separate histogram for<br />

each benchmark, showing the original runtime and the performance achieved after<br />

despecializing 16, 32, 48 and 62 bytecodes, in the order shown in Table 5.1. Finally,<br />

the right most histogram shows the average performance observed across all of<br />

the benchmarks and configurations tested. This overall result shows that specialized

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!