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.

224<br />

Chapter 11<br />

Summary and Conclusions<br />

This thesis has conducted a thorough evaluation of the Java Virtual Machine instruction<br />

set. It began by providing a brief review of the events that lead to the<br />

development and success of Java. This was followed by a description of the Java Virtual<br />

Machine and a summary of the optimization strategies that have been employed<br />

in order to improve its performance.<br />

Chapter 4 introduced the notion of despecialization. It identified a total of 76 specialized<br />

bytecodes which provide functionality that is duplicated by other bytecodes<br />

within the Java Virtual Machine instruction set. Many of these specialized bytecodes<br />

can be replaced with exactly one other general purpose bytecode. Examples<br />

of bytecodes within this category include 40 bytecodes of the form load <br />

and store and 14 constant loading bytecodes of the form const .<br />

Other specialized bytecodes require two or more general purpose bytecodes in order<br />

to achieve identical functionality. These include the if bytecodes that can be<br />

replaced with exactly two general purpose bytecodes and several instructions which<br />

require a longer sequence.<br />

Performance results were collected for 7 benchmarks executing on three virtual<br />

machines. These results showed that the change in runtime associated with despecialization<br />

was minor. While the worst performance change for any one benchmark was a<br />

loss of approximately 12.7 percent, this result was not typical. When all benchmarks<br />

were considered across all virtual machines, the overall performance loss averaged 2.0<br />

percent when 67 despecializations were performed.<br />

The Java Virtual Machine Specification includes numerous constraints on the content<br />

of a Java class file. Performing despecialization has the potential to violate some<br />

of those constraints. An analysis was performed in order to determine which of these<br />

limits could be violated. Examining the class files before and after despecialization

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

Saved successfully!

Ooh no, something went wrong!