Title: CSE 598c
1CSE 598c Virtual Machines Survey
ProposalImproving Performance for the
JVMSandra Rueda
2Motivation
- 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?
3JVM - Architecture Overview
runtime data areas
Execution engine
Class loader subsystem
methods
heap
Native method interface
registers
4JVM - Execution Techniques
Java Bytecode
Java Bytecode
Interpretation
Compilation
JVM Platform Specific
JVM Platform Specific
Execution
Execution
Platform (Hardware)
Platform (Hardware)
- Interpretation and compilation have the usual
advantages and trade-offs flexibility vs.
performance.
5JVM - Execution Techniques (2)
Java Bytecodes
Java Bytecodes
JIT Compilers
Interpretation
JVM Platform Specific
JVM Platform Specific
Execution
Java Processor (Hardware)
Platform (Hardware)
- JIT compilers also exhibit the traditional
advantages and trade-offs. - The Java Processor represents a different
approach.
6Java 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
7Java Proposed Optimizations (2)
- Dynamic compilation
- Online profiling - Hotspots
- Offline profiling
- Hybrid
- Thread synchronization
- Monitor implementation
- Thin/fat locks
is it related to JVM?
8Java 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?
9Java Proposed Optimizations (4)
- Stack based architecture
- register based architecture
- Hardware translation
- Local-variable cache
- Adapting branch target buffer
is it related to JVM?
10Topics to include in the survey
- Dynamic Compilation Hotspots
- Thread Synchronization
- RMI
- Garbage Collector
- Register Based Architecture
- Hardware Translation
11References 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.
12References 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.