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