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.

103<br />

were performed was less than 0.1 percent. When 48 despecializations were performed,<br />

the overall average change in performance increased to 0.6 percent. Performing all<br />

62 despecializations considered during this study resulted in a performance change<br />

of just over 2 percent. Consequently, it is concluded that while performing despecialization<br />

can impact the performance of any one benchmark executed on a specific<br />

virtual machine and computer architecture, the overall impact of despecialization is<br />

small. Consequently, the author questions the value of utilizing 62 bytecodes for this<br />

purpose.<br />

5.3 Despecialization and Class File Size<br />

The initial despecialization study discussed in Chapter 4 included a discussion of the<br />

implications despecialization has on class file size. This study extends the previous<br />

examination of the impact despecialization has on class file size by considering both<br />

the additional class files and virtual machines used in this study and by showing<br />

a detailed breakdown of the progressive impact as the number of despecializations<br />

performed increases.<br />

The class files tested during the size analysis include the standard libraries from<br />

each of the virtual machines tested as well as the application classes for each of the<br />

benchmarks. The lone exception was the file install.class included as part of the<br />

SPEC JVM98 benchmark suite. As noted previously, this class file’s large size is<br />

primarily the result of a non-standard attribute can be used to install the benchmark<br />

suite. Had this class file been included during this portion of the study its overall<br />

impact on the results would have been minor because a considerably larger number<br />

of class files were evaluated compared to the size analysis conducted in Section 4.3.<br />

The impact performing despecializations had on class file size is shown graphically<br />

in Figure 5.12. The figure shows that the first despecializations performed have<br />

almost no impact on class file size. This was not a surprising result because those<br />

bytecodes are executed so infrequently. However, it was observed that while some<br />

of those bytecodes were never executed, they do occur statically within some Java<br />

class files. This was determined by looking at the table of data from which the graph<br />

was generated. It revealed that the overall change in the total size of all class files<br />

was 901 bytes when four despecializations were performed. This indicated that there<br />

were approximately 901 static occurrences of these bytecodes present across all of the<br />

benchmarks and libraries considered. This count is not precise because performing

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

Saved successfully!

Ooh no, something went wrong!