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.

105<br />

these despecializations in a method that contains a lookupswitch or a tableswitch<br />

bytecode can result in a class file size change of anywhere from zero to three bytes.<br />

Examining Figure 5.12 further revealed that 52 despecializations must be performed<br />

before average class file size increases by one percent. The remaining change<br />

in average class file size, approximately 2.5 percent, is the result of performing the<br />

final 10 despecializations listed in Table 5.1.<br />

The overall impact on average class file size when 62 despecializations were performed<br />

was an increase of approximately 3.5 percent. An increase of this magnitude<br />

is a minor concern at most. Class file compression is an area of active research.<br />

Techniques have been developed which easily overcome an increase of this magnitude<br />

[61, 68, 94]. Consequently, it is concluded that despecialization has only a minor<br />

impact on class file size which is not sufficient to justify the use of 62 Java bytecodes.<br />

5.4 Generality of Despecialization<br />

The impact performing despecialization has on the correctness of class files was discussed<br />

in detail in Section 4.4. That discussion is not duplicated here. It is simply<br />

pointed out that none of the concerns addressed previously, including the limits imposed<br />

by the Java Virtual Machine Specification, either implicitly or explicitly, were<br />

violated during the despecialization process. Consequently, it is concluded that specialized<br />

bytecodes are not required in order to maintain the correctness of the Java<br />

bytecode language or the Java Virtual Machine.<br />

5.5 Conclusion<br />

This chapter has presented an extension to the initial despecialization study discussed<br />

in Chapter 4. The results presented here cover 20 benchmarks executed on a total<br />

of 8 distinct virtual machine / hardware architectures. The results were consistent<br />

with those presented previously, showing minor changes in application performance<br />

and class file size. When approximately half of the despecializations under consideration<br />

were performed, the observed change in application performance was a loss of<br />

approximately 0.6 percent. This was accompanied by an increase in class file size of<br />

approximately 0.2 percent.<br />

Performing additional despecializations had a larger impact on application performance.<br />

When all 62 despecializations were utilized, average application performance<br />

slowed by approximately 2.0 percent. The largest average increase observed for any

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

Saved successfully!

Ooh no, something went wrong!