Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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? CSE598c- February 06 2 JVM - Architecture Overview runtime data areas Class loader subsystem methods heap registers … CSE598c- February 06 Execution engine Native method interface 3 JVM - Execution Techniques Java Bytecode Interpretation JVM – Platform Specific Java Bytecode Compilation JVM – Platform Specific Execution Execution Platform (Hardware) Platform (Hardware) Interpretation and compilation have the usual advantages and trade-offs: flexibility vs. performance. CSE598c- February 06 4 JVM - Execution Techniques (2) Java Bytecodes JIT Compilers JVM – Platform Specific Java Bytecodes Interpretation JVM – Platform Specific Execution Platform (Hardware) Java Processor (Hardware) JIT compilers also exhibit the traditional advantages and trade-offs. The Java Processor represents a different approach. CSE598c- February 06 5 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 06 6 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 06 7 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 06 8 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 06 9 Topics to include in the survey Dynamic Compilation – Hotspots Thread Synchronization RMI Garbage Collector Register Based Architecture Hardware Translation CSE598c- February 06 10 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. CSE598c- February 06 11 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. CSE598c- February 06 12