Transcript Event
AdaptJ
Sookmyung Women’s Univ.
PSLAB
1. 목차
1. Overview
2. Collecting Trace Data using the AdaptJ
Agent
2.1 Recording a Trace
3. Analyzing Trace Data using AdaptJ Trace
Analyzer
3.1 Overview
3.2 The Command-Line Interface
3.3 Dependencies
1. OverView(1)
two primary purposes:
To facilitate the collection of dynamic data
concerning the execution of a Java program
To provide a framework for implementing analyses
of this collected data quickly and easily
two main goals
The AdaptJ Agent :to collect event trace data
The AdaptJ Trace Analyzer : to read and analyze
the traces generated by the agent
2. Collecting Trace Data using the AdaptJ
Agent
The AdaptJ Agent
Sun’s hprof profiler
Another program which uses the JVMPI is Sun’s hprof
profiler
The AdaptJ Agent is designed
Java Virtual Machine via the Java Virtual Machine Profiler
Interface (JVMPI).
to record various types of events
Install Linux & Unix
to record events
The agent accepts a number of command line
parameters
The AdaptJ agent should then respond with the following message:
AdaptJ Agent Options
===================
file=<output_file>
Specifies the name of the output file.
Defaults to "AdaptJ.dat"
events=<event_char>+
Specifies the events to be recorded
counters=<event_char>+ Specifies the events to be counted
Usage "help=events" to get a list of event chars
split=<size>
Specifies the threshold at which a new file is to be started
gc=<size>
Specifies at which interval to force garbage collection
<size> is a number, optionally followed by one of ’k’, ’m’
or ’g’, which stand for ’kilobytes’, ’megabytes’ and
’gigabytes’, respectively. THIS FEATURE IS CURRENTLY
BROKEN.
pipe
Output data to a named piped instead of a regular file
quiet
Turns off agent messages
opt
Attempts to reduce the size of the trace file by using
compression
techniques
cp=<path1>+
Specifies the classpath to use for resolving classes
cp+=<path1>+ Specifies the classpath to use for resolving classes.
The value of the environment variable CLASSPATH is append
to
the specified list
help[=events] Prints this help message. If ’events’ is specified, a list
of event chars is output
AdaptJ should display the following message:
AdaptJ Event Mappings
====================
JVMPI_EVENT_ARENA_DELETE
JVMPI_EVENT_ARENA_NEW
JVMPI_EVENT_CLASS_LOAD
JVMPI_EVENT_CLASS_LOAD_HOOK
JVMPI_EVENT_CLASS_UNLOAD
JVMPI_EVENT_COMPILED_METHOD_LOAD
A
a
c
k
C
l
Example
want to record the Class Load events and the Method Entry Events.
These correspond to ’c’ and ’b’, respectively. Therefore, we would
type the following to invoke the agent:
$ java -XrunAdaptJ:events=cb AdaptJTest
3. 1 Overview
Event
Operation
Events are read from the trace, they are successively passed to a
sequence of chained operations.
modify the contents of an event
Replace completely a different event
Stop the processing chain
-> act as a filter for the subsequent
operations in the chain
Pack : grouping of operation
Help organize the various operations
Facilitate their configuration
Contain other pack or operation
3. 2 The Command-line interface
Usage and Option
Usage : java adaptj.Main [option] <trace file>
Option
-q, --quiet
: set the quiet mode (m,w,e,0,1,2,3)
-v, --verbose
: enables verbose mode
-- version
: print the version and exits
--no-gui
: disables the graphical progress indicator
-x, --all-off
: turns off all operations
-f, --file
: read arguments from a file
-r, --refresh-rate :set the amount of time between GUI update
--pipe
: forces to read input as if from a pipe
--show-hierarchy : displays the package/operation hierarchy
-t, --time
: prints time statistics
--showver
: prints the version and continues
-p
: set of option for a pack/operation
-cp, --classpath : manipulates the classpath use by AdaptJ
-h, --help
: prints help and exits
3. 3 Dependencies
AdaptJ requires every operation to explicitly state two kinds of
dependencies
Event dependencies
Which event the operation absolutely requires in order to be able to
perform its task
Which event it would like to receive if they are available
Operation dependencies
Which operations in the AdaptJ toolkit provide service for a given
application