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.

158<br />

bytecodes in length respectively. The 222 mpegaudio benchmark also shows a large<br />

jump for lengths 50 and beyond. This represents the frequent execution of several<br />

long multicode blocks consisting of approximately 200 bytecodes.<br />

7.6 Multicode Performance Results<br />

This section presents performance results which show the impact of replacing frequently<br />

executed bytecode sequences with multicodes. Two distinct scoring systems<br />

have been presented in the previous sections. These include determining the score of a<br />

sequence based on the total number of bytecodes that will be replaced and determining<br />

the score based on the total number of transfers that will be removed. Performance<br />

testing was used in order to determine which technique should be employed.<br />

Differing values for the maximum length of a multicode were also considered.<br />

When the multicode identification process was discussed, candidate sequences of up<br />

to 50 bytecodes were evaluated in order to determine their value as a multicode. However,<br />

different values could be used. While testing longer sequences presents technical<br />

challenges due to the number of sequences that must be considered and the memory<br />

required to store those sequences, examining only shorter sequences was an option.<br />

The performance results presented in this section considered identifying multicodes<br />

when the maximum sequence length considered varied from 5 to 50 bytecodes.<br />

Testing multicodes up to 50 bytecodes in length covers nearly all of the bytecode<br />

sequences executed for all of the benchmarks under consideration except 222 mpegaudio.<br />

Testing longer sequences for 222 mpegaudio presented technical challenges<br />

because of the amount of memory required to store such a large number of distinct<br />

sequences. Table 7.3 shows that the average multicode block length for 222 mpegaudio<br />

is less than 15 bytecodes. As a result, while considering sequences up to 50<br />

bytecodes in length does not cover all of the blocks executed, it exceeds the average<br />

block length executed by far. Figure 7.9 also shows that 95 percent of the blocks<br />

executed by 222 mpegaudio are less than 50 bytecodes in length. Furthermore,<br />

as Figure 7.18 shows, 222 mpegaudio showed better performance when the longest<br />

bytecode sequence considered was length 25 rather than length 50. As a result,<br />

evaluating longer sequences was not pursued.<br />

Differing values for the longest bytecode sequence were tested in order to determine<br />

what impact, if any, choosing longer sequences might have on application performance.<br />

Considering longer sequences increases the number of candidate sequences<br />

available, potentially allowing a substitution to be performed that has a higher score.

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

Saved successfully!

Ooh no, something went wrong!