120 likes | 228 Views
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
E N D
CSE 598c – Virtual MachinesSurvey Proposal:Improving Performance for the JVMSandra 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 data areas Execution engine Class loader subsystem methods heap Native method interface registers …
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)
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)
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
Java – Proposed Optimizations (2) • Dynamic compilation • Online profiling - Hotspots • Offline profiling • Hybrid • Thread synchronization • Monitor implementation • Thin/fat locks : is it related to JVM?
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?
Java – Proposed Optimizations (4) • Stack based architecture • register based architecture • Hardware translation • Local-variable cache • Adapting branch target buffer : is it related to JVM?
Topics to include in the survey • Dynamic Compilation – Hotspots • Thread Synchronization • RMI • Garbage Collector • Register Based Architecture • Hardware Translation
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.
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.