Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda."— Presentation transcript:

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

2 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?

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

4 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.

5 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.

6 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

7 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?

8 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?

9 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?

10 CSE598c- February 0610 Topics to include in the survey Dynamic Compilation – Hotspots Thread Synchronization RMI Garbage Collector Register Based Architecture Hardware Translation

11 CSE598c- February 0611 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 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, 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.


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

Similar presentations


Ads by Google