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.

76<br />

Chapter 5<br />

Profiling and Despecialization<br />

Chapter 4 described despecialization – the process of replacing specialized bytecodes<br />

with semantically equivalent general purpose bytecodes. This chapter presents additional<br />

despecialization work that builds on that material. In Chapter 4, the specialized<br />

bytecodes were grouped based on the similarity of the despecialization process. This<br />

chapter presents results achieved when the specialized bytecodes were ordered based<br />

on their execution frequency. It further extends the work presented in the previous<br />

chapter by considering additional benchmarks, platforms and virtual machines. Additional<br />

insight is also provided into why despecialization has only a minor impact on<br />

application performance.<br />

5.1 Profiling<br />

All of the work presented in this chapter relies on profiling information being available.<br />

The purpose of profiling the applications that were executed during performance<br />

testing was to determine the frequency with which each bytecode was executed. The<br />

work was conducted under the assumption that the frequency of execution of the<br />

specialized bytecode should be a good predictor of the impact despecialization has<br />

on the performance of the application. If the bytecode is rarely executed, performing<br />

despecialization should have almost no impact on application performance. This<br />

behaviour is expected because the difference in performance between the specialized<br />

and general purpose bytecodes would have to be huge in order for a rarely executed<br />

bytecode to have a large impact on application performance. Specialized bytecodes<br />

that execute with greater frequency have a larger ability to impact the performance<br />

of the application. Since the most frequently executed bytecodes can account for<br />

several percent of the total bytecodes executed by an application, a relatively small

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

Saved successfully!

Ooh no, something went wrong!