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.

80<br />

by simply applying it to a larger problem. As a result, the overall list of specialized<br />

bytecodes can be skewed to be similar to the list for any one benchmark by simply<br />

increasing the problem size of that benchmark, unless steps are taken to ensure that<br />

each benchmark contributes equally to the overall list.<br />

This issue was addressed in the following manner. When the lists of specialized<br />

bytecodes were generated for each benchmark, the frequency of execution was expressed<br />

as a percentage of the total number of bytecodes executed by the benchmark.<br />

Using this representation eliminated the opportunity for the distribution to be modified<br />

by increasing the size of the problem solved by the benchmark because increasing<br />

the problem size increases both the frequency with which each bytecode executed<br />

and the total number of bytecodes executed by the application. Consequently, the<br />

percentage value reported for each bytecode will not change as a result of increasing<br />

the size of the problem being solved, successfully preventing one benchmark from<br />

skewing the overall list of specialized bytecodes when the amount of work performed<br />

is changed.<br />

Once the normalized list of specialized bytecodes is generated for each benchmark,<br />

the overall list of specialized bytecodes is generated. The frequency of each specialized<br />

bytecode is the sum of the normalized execution frequency for each benchmark,<br />

divided by the total number of benchmarks considered in this study. Thus the value<br />

presented as the frequency of execution in the overall list is not the percentage of the<br />

total bytecodes executed by all of the benchmarks. Instead, it is the average percentage<br />

of the bytecodes executed across all benchmarks. The result of this profiling<br />

effort is shown in Table 5.1.<br />

5.2 Execution Environments<br />

A total of 8 distinct hardware architecture, operating system and virtual machine<br />

combinations were tested in this study. These include virtual machines developed by<br />

both Sun and IBM, operating systems including SunOS, Linux and Windows running<br />

on both Sun SPARC and Intel processors. Testing such a variety of platforms ensures<br />

that any results observed will be useful across many of the platforms on which Java<br />

applications are executed rather than presenting results that are an artifact of a<br />

particular platform. The specific combinations tested are described more thoroughly<br />

in Table 5.2.<br />

It is worth noting that the virtual machines considered in this portion of the study<br />

also cover three different techniques for executing Java applications despite being

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

Saved successfully!

Ooh no, something went wrong!