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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

107<br />

Chapter 6<br />

Operand Profiling<br />

Chapter 5 described profiling that was conducted in order to identify which specialized<br />

bytecodes were executed with greatest frequency. When this profiling work was<br />

conducted, a great deal of information was collected beyond what was required for<br />

that study.<br />

Numerous previous studies have profiled the bytecodes executed by Java applications.<br />

However, these studies have confined themselves to considering only the opcode<br />

component of the bytecodes, completely ignoring the operands. This study extends<br />

previous work in the area by profiling the complete bytecodes executed, including<br />

both the opcodes and the operands, for 23 Java applications. The profile data is then<br />

used to evaluate the appropriateness of current specialized bytecodes when compared<br />

to other specialized bytecode options. Additional patterns identified from the profile<br />

data are also presented. The existence of these patterns is explained by examining<br />

the architecture of the Java Virtual Machine.<br />

6.1 Profiling Environment and Benchmarks<br />

The Kaffe virtual machine was used to collect the data evaluated during this study<br />

as described in Section 5.1. The benchmarks profiled include the 18 profiled for the<br />

despecialization study presented in Chapter 5. Five additional benchmarks were also<br />

profiled for this study. They include four benchmarks from the Ashes Suite Collection<br />

[1] and the Linpack numeric benchmark [42]. The amount of input supplied to the<br />

benchmarks in the Ashes Suite Collection was reduced from its standard levels in<br />

order to make the time required for profiling manageable. The Linpack benchmark<br />

was executed using its standard input size. Each benchmark is briefly described in<br />

the following paragraphs.

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

Saved successfully!

Ooh no, something went wrong!