Documentation Home
> Sun Studio 12: Performance Analyzer
Sun Studio 12: Performance Analyzer
Book Information
Index
Numbers and Symbols
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Preface
Chapter 1 Overview of the Performance Analyzer
Starting the Performance Analyzer From the Integrated Development Environment
The Tools of Performance Analysis
The Collector Tool
The Performance Analyzer Tool
The er_print Utility
The tcov Utility
The Performance Analyzer Window
Traditional UNIX Performance Tools
Chapter 2 Performance Data
What Data the Collector Collects
Clock Data
Clock-based Profiling Under the Solaris OS
Clock-based Profiling Under the Linux OS
Hardware Counter Overflow Profiling Data
Hardware Counter Lists
Format of the Well-Known Hardware Counter List
Format of the Raw Hardware Counter List
Synchronization Wait Tracing Data
Heap Tracing (Memory Allocation) Data
MPI Tracing Data
Global (Sampling) Data
How Metrics Are Assigned to Program Structure
Function-Level Metrics: Exclusive, Inclusive, and Attributed
Interpreting Attributed Metrics: An Example
How Recursion Affects Function-Level Metrics
Chapter 3 Collecting Performance Data
Compiling and Linking Your Program
Source Code Information
Static Linking
Optimization at Compile Time
Compiling Java Programs
Preparing Your Program for Data Collection and Analysis
Using Dynamically Allocated Memory
Using System Libraries
Using Signal Handlers
Using setuid
Program Control of Data Collection
The C and C++ Interface
The Fortran Interface
The Java Interface
The C, C++, Fortran, and Java API Functions
Dynamic Functions and Modules
collector_func_load()
collector_func_unload()
Limitations on Data Collection
Limitations on Clock-Based Profiling
Runtime Distortion and Dilation with Clock-profiling
Limitations on Collection of Tracing Data
Runtime Distortion and Dilation with Tracing
Limitations on Hardware Counter Overflow Profiling
Runtime Distortion and Dilation With Hardware Counter Overflow Profiling
Limitations on Data Collection for Descendant Processes
Limitations on Java Profiling
Runtime Performance Distortion and Dilation for Applications Written in the Java Programming Language
Where the Data Is Stored
Experiment Names
Moving Experiments
Estimating Storage Requirements
Collecting Data
Collecting Data Using the collect Command
Data Collection Options
-p option
-h counter_definition_1 ...[,counter_definition_n]
-s option
-H option
-m option
-S option
-c option
-r option
Experiment Control Options
-F option
-j option
-J java_argument
-l signal
-t duration
-x
-y signal[ ,r]
Output Options
-o experiment_name
-d directory-name
-g group-name
-A option
-L size
-O file
Other Options
-C comment
-n
-R
-V
-v
Collecting Data From a Running Process Using the collect Utility
To Collect Data From a Running Process Using the collect Utility
Collecting Data Using the dbx collector Subcommands
To Run the Collector From dbx:
Data Collection Subcommands
profile option
hwprofile option
synctrace option
heaptrace option
mpitrace option
tha option
sample option
dbxsample { on | off }
Experiment Control Subcommands
disable
enable
pause
resume
sample record name
Output Subcommands
archive mode
limit value
store option
Information Subcommands
show
status
Collecting Data From a Running Process With dbx
To Collect Data From a Running Process That is Not Under the Control of dbx:
Collecting Tracing Data From a Running Program
Collecting Data From MPI Programs
Storing MPI Experiments
Default MPI Experiment Names
Specifying Non-Default MPI Experiment Names
Running the collect Command Under MPI
Collecting Data by Starting dbx Under MPI
Using collect With ppgsz
Chapter 4 The Performance Analyzer Tool
Starting the Performance Analyzer
Analyzer Options
Java Options
-j | --jdkhome jvm-path
-J jvm-options
Control Options
-f | --fontsize size
-v | --verbose
Information Options
-V | --version
-? | --h | --help
Analyzer Default Settings
Performance Analyzer GUI
The Menu Bar
Toolbar
Analyzer Data Displays
Data Display, Left Pane
The Races Tab
The Deadlocks tab
The Functions Tab
The Callers-Callees Tab
The Dual-Source Tab
The Source-Disassembly Tab
The Source Tab
The Lines Tab
The Disassembly Tab
The PCs Tab
The Timeline Tab
The LeakList Tab
The DataObjects Tab
The DataLayout Tab
The Inst-Freq Tab
The Statistics Tab
The Experiments Tab
The Index Tabs
The MemoryObjects Tabs
Data Display, Right Pane
The Summary Tab
The Event Tab
The Leak Tab
The Race Detail Tab
The Deadlock Detail Tab
Setting Data Presentation Options
Metrics Tab
Sort Tab
Source/Disassembly Tab
Formats Tab
Timeline Tab
Search Path Tab
Pathmaps Tab
Tabs Tab
Saving Data Presentation Options
Finding Text and Data
Showing or Hiding Functions
Filtering Data
Experiment Selection
Sample Selection
Thread Selection
LWP Selection
CPU Selection
Recording Experiments
Generating Mapfiles and Function Reordering
Default Settings for Analyzer
Chapter 5 Kernel Profiling
Kernel Experiments
Setting Up Your System for Kernel Profiling
Running the er_kernel Utility
Profiling the Kernel
Profiling Under Load
Profiling the Kernel and Load Together
Profiling a Specific Process or Kernel Thread
Analyzing a Kernel Profile
Chapter 6 The er_print Command Line Performance Analysis Tool
er_print Syntax
Metric Lists
Commands That Control the Function List
functions
metrics metric_spec
sort metric_spec
fsummary
fsingle function_name [N]
Commands That Control the Callers-Callees List
callers-callees
cmetrics metric_spec
csingle function_name [N]
csort metric_spec
Commands That Control the Leak and Allocation Lists
leaks
allocs
Commands That Control the Source and Disassembly Listings
pcs
psummary
lines
lsummary
source { filename | function_name } [ N]
disasm { filename | function_name } [ N]
scc com_spec
sthresh value
dcc com_spec
dthresh value
cc com_spec
setpath path_list
addpath path_list
pathmap old-prefix new-prefix
Commands That Control the Data Space List
data_objects
data_single name [N]
data_layout
data_metrics metric_spec
data_sort
Commands That Control Memory Object Lists
memobj mobj_type
mobj_list
mobj_define mobj_type index_exp
Commands That Control Index Object Lists
indxobj indxobj_type
indxobj_list
indxobj_define indxobj_type index_exp
indxobj_metrics metric_spec
indxobj_sort metric_spec
Commands That Support the Thread Analyzer
races
rdetail race_id
deadlocks
ddetail deadlock_id
Commands That List Experiments, Samples, Threads, and LWPs
experiment_list
sample_list
lwp_list
thread_list
cpu_list
Commands That Control Filtering of Experiment Data
Specifying a Filter Expression
filters filter_exp
Selecting Samples, Threads, LWPs, and CPUs for Filtering
Selection Lists
Selection Commands
sample_select sample_spec
lwp_select lwp_spec
thread_select thread_spec
cpu_select cpu_spec
Commands That Control Load Object Expansion and Collapse
object_list
object_select object1,object2,...
Commands That List Metrics
metric_list
cmetric_list
data_metric_list
indx_metric_list
Commands That Control Output
outfile { filename | - }
appendfile filename
limit n
name { long | short } [ :{ shared_object_name | no_shared_object_name } ]"
viewmode { user | expert | machine }
Commands That Print Other Information
header exp_id
ifreq
objects
overview exp_id
statistics exp_id
Commands That Set Defaults
dmetrics metric_spec
dsort metric_spec
en_desc { on | off | =regexp}
Commands That Set Defaults Only For the Performance Analyzer
tabs tab_spec
rtabs tab_spec
tlmode tl_mode
tldata tl_data
Miscellaneous Commands
mapfile load-object { mapfilename | - }
procstats
script file
version
quit
help
Expression Grammar
er_print command Examples
Chapter 7 Understanding the Performance Analyzer and Its Data
How Data Collection Works
Experiment Format
The archives Directory
Descendant Processes
Dynamic Functions
Java Experiments
Recording Experiments
collect Experiments
dbx Experiments That Create a Process
dbx Experiments, on a Running Process
Interpreting Performance Metrics
Clock-Based Profiling
Accuracy of Timing Metrics
Comparisons of Timing Metrics
Synchronization Wait Tracing
Hardware Counter Overflow Profiling
Heap Tracing
Dataspace Profiling
MPI Tracing
Call Stacks and Program Execution
Single-Threaded Execution and Function Calls
Function Calls Between Shared Objects
Signals
Traps
Tail-Call Optimization
Explicit Multithreading
Overview of Java Technology-Based Software Execution
Java Call Stacks and Machine Call Stacks
Clock-based Profiling and Hardware Counter Overflow Profiling
Synchronization Tracing
Heap Tracing
Java Processing Representations
The User Representation
The Expert-User Representation
The Machine Representation
Overview of OpenMP Software Execution
User Mode Display of OpenMP Profile Data
Artificial Functions
User Mode Call Stacks
OpenMP Metrics
Machine Presentation of OpenMP Profiling Data
Incomplete Stack Unwinds
Intermediate Files
Mapping Addresses to Program Structure
The Process Image
Load Objects and Functions
Aliased Functions
Non-Unique Function Names
Static Functions From Stripped Shared Libraries
Fortran Alternate Entry Points
Cloned Functions
Inlined Functions
Compiler-Generated Body Functions
Outline Functions
Dynamically Compiled Functions
The <Unknown> Function
OpenMP Special Functions
The <JVM-System> Function
The <no Java callstack recorded> Function
The <Truncated-stack> Function
The <Total> Function
Functions Related to Hardware Counter Overflow Profiling
Mapping Performance Data to Index Objects
Mapping Data Addresses to Program Data Objects
Data Object Descriptors
The <Total> Data Object
The <Scalars> Data Object
The <Unknown> Data Object and Its Elements
Mapping Performance Data to Memory Objects
Chapter 8 Understanding Annotated Source and Disassembly Data
Annotated Source Code
Performance Analyzer Source Tab Layout
Identifying the Original Source Lines
Index Lines in the Source Tab
Compiler Commentary
Common Subexpression Elimination
Loop Optimizations
Inlining of Functions
Parallelization
Special Lines in the Annotated Source
Source Line Metrics
Interpreting Source Line Metrics
Metric Formats
Annotated Disassembly Code
Interpreting Annotated Disassembly
Instruction Issue Grouping
Instruction Issue Delay
Attribution of Hardware Counter Overflows
Special Lines in the Source, Disassembly and PCs Tabs
Outline Functions
Compiler-Generated Body Functions
Dynamically Compiled Functions
Java Native Functions
Cloned Functions
Static Functions
Inclusive Metrics
Branch Target
Viewing Source/Disassembly Without An Experiment
-func
-{source,src} item tag
-disasm item tag
-{c,scc,dcc} com-spec
-outfile filename
-V
Chapter 9 Manipulating Experiments
Manipulating Experiments
Copying Experiments With the er_cp Utility
Moving Experiments With the er_mv Utility
Deleting Experiments With the er_rm Utility
Other Utilities
The er_archive Utility
-n
–q
–A
–F
–V
The er_export Utility
© 2010, Oracle Corporation and/or its affiliates