Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.

Slides:



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

Intro to C#. Programming Coverage Methods, Classes, Arrays Iteration, Control Structures Variables, Expressions Data Types.
Helper Threads via Virtual Multithreading on an experimental Itanium 2 processor platform. Perry H Wang et. Al.
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
1 A Case for Vertical Profiling Peter Sweeney Michael Hind IBM Thomas J. Watson Research Center Matthias Hauswirth Amer Diwan University of Colorado at.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Figure 1.1 Interaction between applications and the operating system.
Instrumentation and Profiling David Kaeli Department of Electrical and Computer Engineering Northeastern University Boston, MA
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Instrumentation and Measurement CSci 599 Class Presentation Shreyans Mehta.
Introduction to Java.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
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.
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
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.
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Introduction to Java Kumar Harshit. Objectives ( 목적지 ) At the end of the lesson, the student should be able to: ● Describe the features of Java technology.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
P ARALLEL P ROCESSING I NSTITUTE · F UDAN U NIVERSITY 1.
Why Java? A brief introduction to Java and its features Prepared by Mithat Konar.
The Jikes RVM | Ian Rogers, The University of Manchester | Dr. Ian Rogers Jikes RVM Core Team Member Research Fellow, Advanced.
Introduction to the Java Virtual Machine 井民全. JVM (Java Virtual Machine) the environment in which the java programs execute The specification define an.
Sadegh Aliakbary Sharif University of Technology Fall 2012.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Real-Time Java on JOP Martin Schöberl. Real-Time Java on JOP2 Overview RTSJ – why not Simple RT profile Scheduler implementation User defined scheduling.
Oct Using Platform-Specific Performance Counters for Dynamic Compilation Florian Schneider and Thomas Gross ETH Zurich.
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++
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.
1 Fast and Efficient Partial Code Reordering Xianglong Huang (UT Austin, Adverplex) Stephen M. Blackburn (Intel) David Grove (IBM) Kathryn McKinley (UT.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Lu Hao Profiling-Based Hardware/Software Co- Exploration for the Design of Video Coding Architectures Heiko Hübert and Benno Stabernack.
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
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.
1. An Introduction A Programming Language A Technology Java Development Kit Java API One Language: Three Editions Standard Edition Enterprise Edition.
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
Introduction Why are virtual machines interesting?
Introduction to Programming 1 1 2Introduction to Java.
Profile, HAT, Wireless Toolkit’s Profile Sookmyung Women’s Univ. PSLAB Choi yoonjeong.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Eliminating External Fragmentation in a Non-Moving Garbage Collector for Java Author: Fridtjof Siebert, CASES 2000 Michael Sallas Object-Oriented Languages.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
(Not too) Real-Time JVM (Progress Report)
Before You Begin Nahla Abuel-ola /WIT.
Interpreted languages Jakub Yaghob
Topic: Difference b/w JDK, JRE, JIT, JVM
Runtime Analysis of Hotspot Java Virtual Machine
Introduction Enosis Learning.
Introduction Enosis Learning.
Adaptive Code Unloading for Resource-Constrained JVMs
Tools.
.Net Framework Details Imran Rashid CTO at ManiWeber Technologies.
Tools.
Java Programming Introduction
Introduction to Virtual Machines
Introduction to Virtual Machines
M S COLLEGE ART’S, COMM., SCI. & BMS
JIT Compiler Design Maxine Virtual Machine Dhwani Pandya
Presentation transcript:

Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon

1. Content Introduction Fundamental concept Implementation Case Studies

1.Introduction : object-oriented programming languages. Benefit  Increased runtime flexibility Reflection, automatic memory management  improved security properties Null pointer and array bounds checks, security policies  portable deployment representation introduces an additional layer of virtualization, between the application and the OS. Defect  Introduces obstacles to understanding application performance.

C program  Application  Operating System  Hardware Java /.net program  Application  Framework  Java Library  Virtual Machine  Native Library  Operating System  Hardware 1.Introduction : object-oriented programming languages.

1.Introduction : Veritcal Profiling Verital Profiling  gather more complete profiles, containing information about system behavior on various levels  to further the understanding of system behavior through correlation of profile information from different level

2. fundamental concept Events  atomic occurrence in time that does not have any duration  Usually causes the system to change to a different state. States  captures the values in all of memory Monitors  obseves the behavior of a system  scalar variable with a value that changes over time  hardware / sofeware performance monitors Counters  special kind of performance monitor  usually a count of events

2. fundamental concept Sofeware Performance Monitors  observe the behaviour in the layers above the hardware  cover the following parts of the system Application Vitual Machine Memory Manager Runtime Compilers Synchronization Operating System

3. Implementation : Jikes RVM open source research virtual machine that executes java bytecodes Jikes RVM  is implemented in the Java programming language  uses Java threads to implement several subsystems, such as the garbage collector and the adaptive optimization system

3. Implementation : Jikes RVM

3. Implementation hardware performance monitors  processor cycles, L1 cache misses.. software performance monitors  In native code  In Java code generates a trace file for each Jikes RVM virtual processor, and one meta file  trace file contains a sereies of trace records Virtual Processor ID /Compiled Method IDs Thread ID / Thread Yield status Real Time / Real Time Duration Thread Switch Status / Monitor Values  Meta file is generated in conjunction with benchmark’s trace files.

3. Implementation Performance Analysis  metrics  sample lists  statistics  visualizations Use IBM Performance Explorer  performance visualization and analysis tool

4. Case Studies

Benchmarks : SPECjbb2000 VM : Jikes RVM Initialization  1 thread  transactions  50 transactions per time slice

4. Case Studies The changes in application behavior during a transaction are not captured in the signal Thus, they expect tha the gradual increase in IPC is not due to the transaction behavior, but due to some other lower-level behavior In prior work they speculated that jbb’s gradual increase in IPC occurs because as jbb runs, more and more of its code gets optimized.  Optimized code had a higher IPC than unoptimized code  the number of flushes in the load/store unit went down when the IPC increased.

4. Case Studies Exploration  Need to measure the amount of time spent in optimized code and unoptimized code for each thme slice  Use MonitorEnter bytecode instructions  Two JVM performance monitor UnoptMonitorEnter OptMonitorEnter

4. Case Studies