Understanding the Behavior of Object

Download Report

Transcript Understanding the Behavior of Object

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.
1. Introduction :
object-oriented programming languages.
 C program
 Application
 Operating System
 Hardware
 Java / .net program







Application
Framework
Java Library
Virtual Machine
Native Library
Operating System
Hardware
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
4. Case Studies
Benchmarks : SPECjbb2000
VM : Jikes RVM
Initialization
1 thread
120000 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