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.

229<br />

stitution were performed. It considered performing 50 despecializations before 50<br />

multicodes were identified. Seventeen bytecodes despecialized in the previous study<br />

were not despecialized in the second study. The bytecodes left in their specialized<br />

form were those that previous work on despecialization had shown to have the largest<br />

negative impact on application performance. The performance achieved in this second<br />

study was nearly identical to that achieved when 50 multicode substitutions were<br />

performed without any despecializations being performed. This result shows that one<br />

of the disadvantages of multicode substitution – the fact that it increases the number<br />

of distinct bytecodes in the virtual machine instruction set – can be overcome while<br />

maintaining its effectiveness as an optimization strategy.<br />

In conclusion, the studies presented in this thesis considered many interesting<br />

issues related to the design of the Java Virtual Machine instruction set. Taken independently,<br />

each study found interesting results.<br />

• Despecialization: Performing despecialization revealed that specialized bytecodes<br />

have surprisingly little impact on application performance. Further analysis<br />

revealed that using an asymmetric instruction set would allow specialized<br />

bytecodes to be used more effectively.<br />

• Multicodes: An automatic means of determining which bytecode sequences<br />

should be replaced with multicodes was presented. Using these multicodes was<br />

found to reduce application runtime by as much as 30 percent.<br />

Combining these ideas provided a mechanism for automatically developing a customized<br />

instruction set for an application. The customized instruction set retained<br />

those specialized bytecodes that were most used by the application while replacing<br />

under utilized specialized bytecodes with multicodes, improving application performance.

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

Saved successfully!

Ooh no, something went wrong!