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

Slides:



Advertisements
Similar presentations
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
Advertisements

Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Java Implementation Arthur Sale & Saeid Nooshabadi The background to a Large Grant ARC Application.
JAVA Processors and JIT Scheduling. Overview & Literature n Formulation of the problem n JAVA introduction n Description of Caffeine * Literature: “Java.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
Java: History and Introduction (Lecture # 1). History… Java – Based on C and C++ – Developed in 1991 for intelligent consumer electronic devices – Green.
The Use of Traces for Inlining in Java Programs Borys J. Bradel Tarek S. Abdelrahman Edward S. Rogers Sr.Department of Electrical and Computer Engineering.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JETT 2003 Java.compareTo(C++). JAVA Java Platform consists of 4 parts: –Java Language –Java API –Java class format –Java Virtual Machine.
1 Programming Languages b Each type of CPU has its own specific machine language b But, writing programs in machine languages is cumbersome (too detailed)
1 COMP 144 Programming Language Concepts Felix Hernandez-Campos Lecture 32: The Java Virtual Machine COMP 144 Programming Language Concepts Spring 2002.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
CS884 (Prasad)Java Goals1 “Perfect Quote” You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing.
1 Software Testing and Quality Assurance Lecture 31 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Intro to Java The Java Virtual Machine. What is the JVM  a software emulation of a hypothetical computing machine that runs Java bytecodes (Java compiler.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
Adaptive Optimization in the Jalapeño JVM M. Arnold, S. Fink, D. Grove, M. Hind, P. Sweeney Presented by Andrew Cove Spring 2006.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Dynamic Compilation II John Cavazos University.
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schöberl.
Exploring Multi-Threaded Java Application Performance on Multicore Hardware Ghent University, Belgium OOPSLA 2012 presentation – October 24 th 2012 Jennifer.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
JIT in webkit. What’s JIT See time_compilation for more info. time_compilation.
Lecture 10 : Introduction to Java Virtual Machine
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
O VERVIEW OF THE IBM J AVA J UST - IN -T IME C OMPILER Presenters: Zhenhua Liu, Sanjeev Singh 1.
1 Comp 104: Operating Systems Concepts Java Development and Run-Time Store Organisation.
1 Introduction to JVM Based on material produced by Bill Venners.
Just-in-time
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
Java Virtual Machine Case Study on the Design of JikesRVM.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Buffered dynamic run-time profiling of arbitrary data for Virtual Machines which employ interpreter and Just-In-Time (JIT) compiler Compiler workshop ’08.
CPRG 215 Introduction to Object-Oriented Programming with Java Module 1-Introduction to Java Topic 1.1 Basics of Java Produced by Harvey Peters, 2008 Copyright.
The University of Texas at Austin Lizy Kurian John, LCA, UT Austin1 What Programming Language/Compiler Researchers should Know about Computer Architecture.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
Spring 2003CSE P5481 Midterm Philosophy What the exam looks like. Definitions, comparisons, advantages & disadvantages what is it? how does it work? why.
Virtual Machines, Interpretation Techniques, and Just-In-Time Compilers Kostis Sagonas
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Dynamic Compilation I John Cavazos University.
380C lecture 19 Where are we & where we are going –Managed languages Dynamic compilation Inlining Garbage collection –Opportunity to improve data locality.
Yang Yu, Tianyang Lei, Haibo Chen, Binyu Zang Fudan University, China Shanghai Jiao Tong University, China Institute of Parallel and Distributed Systems.
High-level Interfaces for Scalable Data Mining Ruoming Jin Gagan Agrawal Department of Computer and Information Sciences Ohio State University.
Common Language Runtime Introduction  The common language runtime is one of the most essential component of the.Net Framework.  It acts.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
Duke CPS Java: make it run, make it right, make it fast (see Byte, May 1998, for more details) l “Java isn’t fast enough for ‘real’ applications”
Introduction to Programming 1 1 2Introduction to Java.
Just-In-Time Compilation. Introduction Just-in-time compilation (JIT), also known as dynamic translation, is a method to improve the runtime performance.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
(Not too) Real-Time JVM (Progress Report)
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Interpreted languages Jakub Yaghob
Topic: Difference b/w JDK, JRE, JIT, JVM
Runtime Analysis of Hotspot Java Virtual Machine
Introduction Enosis Learning.
Java Virtual Machine Complete subject details are available at:
2.1. Compilers and Interpreters
Improving java performance using Dynamic Method Migration on FPGAs
Introduction Enosis Learning.
“just-in-time” compilation (JIT) technique prepared by - Harshada Hole
Adaptive Code Unloading for Resource-Constrained JVMs
Adaptive Optimization in the Jalapeño JVM
M S COLLEGE ART’S, COMM., SCI. & BMS
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

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.