CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda
CSE598c- February 062 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?
CSE598c- February 063 JVM - Architecture Overview Class loader subsystem runtime data areas methods heap registers Execution engine Native method interface …
CSE598c- February 064 JVM - Execution Techniques Platform (Hardware) JVM – Platform Specific Java Bytecode Interpretation Execution Platform (Hardware) JVM – Platform Specific Java Bytecode Compilation Execution Interpretation and compilation have the usual advantages and trade-offs: flexibility vs. performance.
CSE598c- February 065 JVM - Execution Techniques (2) Platform (Hardware) JVM – Platform Specific Java Bytecodes JIT Compilers Execution Java Processor (Hardware) JVM – Platform Specific Java Bytecodes Interpretation JIT compilers also exhibit the traditional advantages and trade-offs. The Java Processor represents a different approach.
CSE598c- February 066 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
CSE598c- February 067 Java – Proposed Optimizations (2) Dynamic compilation Online profiling - Hotspots Offline profiling Hybrid Thread synchronization Monitor implementation Thin/fat locks : is it related to JVM?
CSE598c- February 068 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?
CSE598c- February 069 Java – Proposed Optimizations (4) Stack based architecture register based architecture Hardware translation Local-variable cache Adapting branch target buffer : is it related to JVM?
CSE598c- February 0610 Topics to include in the survey Dynamic Compilation – Hotspots Thread Synchronization RMI Garbage Collector Register Based Architecture Hardware Translation
CSE598c- February 0611 References – Initial Version [Barabash et al.] A parallel, incremental, mostly concurrent garbage collector for servers. OOPSLA, [Blackburn et al.] Pretenuring for Java. OOPSLA, [Czajkowski et al.] Multitasking without comprimise: a virtual machine evolution. OOPSLA, [Kazi et al.] Techniques for obtaining high performance in Java programs. ACM Computing Surveys, [Levanoni et al.] An On-the-Fly Reference-Counting Garbage Collector for Java. ACM Transactions on Programming Languages and Systems, 2006.
CSE598c- February 0612 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, [Oi] On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine. LCTES, [Radhakrishnan et al.] Improving Java Performance Using Hardware Translation. ICS [Sandya] Jazzing up JVMs with off-line profile data: does it pay? ACM SIGPLAN, [Suganuma et al.] A Dynamic Optimization Framework for a Java Just-in-Time Compiler. OOPSLA, 2001.