1 / 12

CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda

CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda. Motivation. Java Programs are widely used Performance is a big issue Execution time for Java Programs may be improved What options are related to the JVM?. JVM - Architecture Overview. runtime

jeneva
Download Presentation

CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 598c – Virtual MachinesSurvey Proposal:Improving Performance for the JVMSandra Rueda

  2. Motivation • Java Programs are widely used • Performance is a big issue • Execution time for Java Programs may be improved • What options are related to the JVM?

  3. JVM - Architecture Overview runtime data areas Execution engine Class loader subsystem methods heap Native method interface registers …

  4. JVM - Execution Techniques • Interpretation and compilation have the usual advantages and trade-offs: flexibility vs. performance. Java Bytecode Java Bytecode Interpretation Compilation JVM – Platform Specific JVM – Platform Specific Execution Execution Platform (Hardware) Platform (Hardware)

  5. JVM - Execution Techniques (2) • JIT compilers also exhibit the traditional advantages and trade-offs. • The Java Processor represents a different approach. Java Bytecodes Java Bytecodes JIT Compilers Interpretation JVM – Platform Specific JVM – Platform Specific Execution Java Processor (Hardware) Platform (Hardware)

  6. Java – Proposed Optimizations (1) • Bytecode optimization. Code optimization is a technique used in multiple environments. • Alias analysis • Inlining • Variable elimination • Memory locality improvement • Parallel and distributed execution techniques • Multithreading – It depends on application parallelism

  7. Java – Proposed Optimizations (2) • Dynamic compilation • Online profiling - Hotspots • Offline profiling • Hybrid • Thread synchronization • Monitor implementation • Thin/fat locks : is it related to JVM?

  8. Java – Proposed Optimizations (3) • Remote method invocation • Object serialization • Resource management • Garbage collector • Generational • Pretenuring (long-lived object regions) • Concurrent collector : is it related to JVM?

  9. Java – Proposed Optimizations (4) • Stack based architecture • register based architecture • Hardware translation • Local-variable cache • Adapting branch target buffer : is it related to JVM?

  10. Topics to include in the survey • Dynamic Compilation – Hotspots • Thread Synchronization • RMI • Garbage Collector • Register Based Architecture • Hardware Translation

  11. References – Initial Version • [Barabash et al.] A parallel, incremental, mostly concurrent garbage collector for servers. OOPSLA, 2003. • [Blackburn et al.] Pretenuring for Java. OOPSLA, 2001. • [Czajkowski et al.] Multitasking without comprimise: a virtual machine evolution. OOPSLA, 2001. • [Kazi et al.] Techniques for obtaining high performance in Java programs. ACM Computing Surveys, 2000. • [Levanoni et al.] An On-the-Fly Reference-Counting Garbage Collector for Java. ACM Transactions on Programming Languages and Systems, 2006.

  12. References – Initial Version • [Li et al.] Adapting Branch-Target Buffer to Improve the Target Predictability of Java Code. ACM Transactions on Architecture and Code optimization, 2005. • [Oi] On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine. LCTES, 2005. • [Radhakrishnan et al.] Improving Java Performance Using Hardware Translation. ICS 2001. • [Sandya] Jazzing up JVMs with off-line profile data: does it pay? ACM SIGPLAN, 2004. • [Suganuma et al.] A Dynamic Optimization Framework for a Java Just-in-Time Compiler. OOPSLA, 2001.

More Related