Hive Fault Containment for Shared

Download Report

Transcript Hive Fault Containment for Shared

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