Documentation Home
> Sun Studio 12:性能分析器
Sun Studio 12:性能分析器
Book Information
索引
数字和符号
A
C
D
E
F
G
I
J
L
M
N
O
P
R
S
T
V
X
“
版
包
编
标
并
程
抽
磁
从
存
带
单
等
地
递
调
动
独
度
堆
多
反
方
非
分
符
复
概
高
共
关
归
过
函
后
环
恢
回
基
间
将
进
静
克
库
快
列
路
命
内
排
缺
人
入
删
实
时
事
视
收
输
数
死
搜
索
替
通
同
外
网
微
尾
文
显
线
限
陷
相
泄
信
性
选
循
样
叶
移
异
溢
映
硬
优
由
有
语
阈
预
原
源
约
在
暂
摘
展
帧
执
指
中
重
周
主
装
子
前言
第 1 章 性能分析器概述
从集成开发环境中启动性能分析器
性能分析工具
收集器工具
性能分析器工具
er_print 实用程序
tcov 实用程序
性能分析器窗口
传统的 UNIX 性能工具
第 2 章 性能数据
收集器收集何种数据
时钟数据
Solaris OS 下基于时钟的分析
Linux OS 下基于时钟的分析
硬件计数器溢出分析数据
硬件计数器列表
周知硬件计数器列表的格式
原始硬件计数器列表的格式
同步等待跟踪数据
堆跟踪(内存分配)数据
MPI 跟踪数据
全局(抽样)数据
如何将度量分配到程序结构
函数级度量:独占、包含和归属
解释归属度量:示例
递归如何影响函数级度量
第 3 章 收集性能数据
编译和链接程序
源代码信息
静态链接
编译时优化
编译 Java 程序
为数据收集和分析准备程序
使用动态分配的内存
使用系统库
使用信号处理程序
使用 setuid
数据收集的程序控制
C 和 C++ 接口
Fortran 接口
Java 接口
C、C++、Fortran 和 Java API 函数
动态函数和模块
collector_func_load()
collector_func_unload()
数据收集的限制
基于时钟的分析的限制
时钟分析中的运行时失真和扩大
收集跟踪数据的限制
跟踪过程中的运行时失真和扩大
硬件计数器溢出分析的限制
硬件计数器溢出分析中的运行时失真和扩大
后续进程中数据收集的限制
Java 分析的限制
用 Java 编程语言所编写的应用程序的运行时性能失真和扩大
数据的存储位置
实验名称
移动实验
估计存储要求
收集数据
使用 collect 命令收集数据
数据收集选项
-p option
-h counter_definition_1 ...[,counter_definition_n]
-s option
-H option
-m option
-S option
-c option
-r option
实验控制选项
-F option
-j option
-J java_argument
-l signal
-t duration
-x
-y signal[ ,r]
输出选项
-o experiment_name
-d directory-name
-g group-name
-A option
-L size
-O file
其他选项
-C comment
-n
-R
-V
-v
使用 collect 实用程序从正在运行的进程中收集数据
使用 collect 实用程序从正在运行的进程中收集数据
使用 dbx collector 子命令收集数据
从 dbx 运行收集器:
数据收集子命令
profile option
hwprofile option
synctrace option
heaptrace option
mpitrace option
tha option
sample option
dbxsample { on | off }
实验控制子命令
disable
enable
pause
resume
sample record name
输出子命令
archive mode
limit value
store option
信息子命令
show
status
使用 dbx 从正在运行的进程中收集数据
从正在运行且不受 dbx 控制的进程中收集数据:
从正在运行的程序中收集跟踪数据
从 MPI 程序收集数据
存储 MPI 实验
缺省的 MPI 实验名称
指定非缺省的 MPI 实验名称
在 MPI 下运行 collect 命令
通过在 MPI 下启动 dbx 来收集数据
将 collect 和 ppgsz 一起使用
第 4 章 性能分析器工具
启动性能分析器
分析器选项
Java 选项
-j | --jdkhome jvm-path
-J jvm-options
控制选项
-f | --fontsize size
-v | --verbose
信息选项
-V | --version
-? | --h | --help
分析器缺省设置
性能分析器 GUI
菜单栏
工具栏
分析器数据显示
数据显示,左窗格
“争用”标签
“死锁”标签
“函数”标签
“调用者与被调用者”标签
“双重数据源”标签
"Source-Disassembly"(源-反汇编)标签
“源”标签
“行”标签
“反汇编”标签
"PC" 标签
“时间线”标签
“泄漏列表”标签
“数据对象”标签
“数据布局”标签
"Inst-Freq" 标签
“统计数据”标签
“实验”标签
"Index"(索引)标签
“内存对象”标签
数据显示,右窗格
“摘要”标签
“事件”标签
“泄漏”标签
“争用详细信息”标签
“死锁详细信息”标签
设置数据表示选项
“度量”标签
“排序”标签
“源/反汇编”标签
“格式”标签
“时间线”标签
“搜索路径”标签
“路径映射”标签
“标签”标签
保存数据表示选项
查找文本和数据
显示或隐藏函数
过滤数据
实验选择
样本选择
线程选择
LWP 选择
CPU 选择
记录实验
生成映射文件和函数重新排序
分析器缺省设置
第 5 章 内核分析
内核实验
为内核分析设置系统
运行 er_kernel 实用程序
分析内核
在有负载时的分析
一起分析内核和负载
分析特定的进程或内核线程
分析内核分析数据
第 6 章 er_print 命令行性能分析工具
er_print 语法
度量列表
控制函数列表的命令
functions
metrics metric_spec
sort metric_spec
fsummary
fsingle function_name [N]
控制调用者-被调用者列表的命令
callers-callees
cmetrics metric_spec
csingle function_name [N]
csort metric_spec
控制泄漏和分配列表的命令
leaks
allocs
控制源代码和反汇编代码列表的命令
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
控制数据空间列表的命令
data_objects
data_single name [N]
data_layout
data_metrics metric_spec
data_sort
控制内存对象列表的命令
memobj mobj_type
mobj_list
mobj_define mobj_type index_exp
控制索引对象列表的命令
indxobj indxobj_type
indxobj_list
indxobj_define indxobj_type index_exp
indxobj_metrics metric_spec
indxobj_sort metric_spec
支持线程分析器的命令
races
rdetail race_id
deadlocks
ddetail deadlock_id
列出实验、抽样、线程和 LWP 的命令
experiment_list
sample_list
lwp_list
thread_list
cpu_list
控制实验数据过滤的命令
指定过滤表达式
filters filter_exp
选择要进行过滤的抽样、线程、LWP 和 CPU
选择列表
选择命令
sample_select sample_spec
lwp_select lwp_spec
thread_select thread_spec
cpu_select cpu_spec
控制装入对象展开和折叠的命令
object_list
object_select object1,object2,...
列出度量的命令
metric_list
cmetric_list
data_metric_list
indx_metric_list
控制输出的命令
outfile { filename | - }
appendfile filename
limit n
name { long | short } [ :{ shared_object_name | no_shared_object_name } ]"
viewmode { user | expert | machine }
列显其他信息的命令
header exp_id
ifreq
objects
overview exp_id
statistics exp_id
设置缺省值的命令
dmetrics metric_spec
dsort metric_spec
en_desc { on | off | =regexp}
仅为性能分析器设置缺省值的命令
tabs tab_spec
rtabs tab_spec
tlmode tl_mode
tldata tl_data
杂项命令
mapfile load-object { mapfilename | - }
procstats
script file
version
quit
help
表达式语法
er_print 命令示例
第 7 章 了解性能分析器及其数据
数据收集的工作原理
实验格式
archives 目录
后续进程
动态函数
Java 实验
记录实验
collect 实验
创建进程的 dbx 实验
dbx 实验,在正在运行的进程上
解释性能度量
基于时钟的分析
计时度量的准确性
计时度量的比较
同步等待跟踪
硬件计数器溢出分析
堆跟踪
数据空间分析
MPI 跟踪
调用栈和程序执行
单线程执行和函数调用
共享对象之间的函数调用
信号
陷阱
尾部调用优化
显式多线程
基于 Java 技术的软件执行概述
Java 调用栈和机器调用栈
基于时钟的分析和硬件计数器溢出分析
同步跟踪
堆跟踪
Java 处理表示法
用户表示法
专家用户表示法
机器表示法
OpenMP 软件执行概述
OpenMP 分析数据的用户模式显示
人工函数
用户模式调用栈
OpenMP 度量
OpenMP 分析数据的机器表示
不完全的堆栈展开
中间文件
将地址映射到程序结构
进程映像
装入对象和函数
有别名的函数
非唯一函数名称
来自剥离共享库的静态函数
Fortran 备用入口点
克隆函数
内联函数
编译器生成的主体函数
外联函数
动态编译的函数
<Unknown> 函数
OpenMP 特殊函数
<JVM-System> 函数
<no Java callstack recorded> 函数
<Truncated-stack> 函数
<Total> 函数
与硬件计数器溢出分析相关的函数
将性能数据映射到索引对象
将数据地址映射到程序数据对象
数据对象描述符
<Total> 数据对象
<Scalars> 数据对象
<Unknown> 数据对象及其元素
将性能数据映射到内存对象
第 8 章 了解带注释的源代码和反汇编数据
带注释的源代码
性能分析器“源”标签布局
标识初始源代码行
“源”标签中的索引行
编译器注释
通用子表达式删除
循环优化
函数内联
并行化
带注释的源代码中的特殊行
源代码行度量
解释源代码行度量
度量格式
带注释的反汇编代码
解释带注释的反汇编代码
指令发送分组
指令发送延迟
硬件计数器溢出的归属
“源”、“反汇编”和 "PC" 标签中的特殊行
外联函数
编译器生成的主体函数
动态编译的函数
Java 本机函数
克隆函数
静态函数
包含度量
分支目标
在不运行实验的情况下查看源代码/反汇编代码
-func
-{source,src} item tag
-disasm item tag
-{c,scc,dcc} com-spec
-outfile filename
-V
第 9 章 处理实验
处理实验
使用 er_cp 实用程序复制实验
使用 er_mv 实用程序移动实验
使用 er_rm 实用程序删除实验
其他实用程序
er_archive 实用程序
-n
–q
–A
–F
–V
er_export 实用程序
© 2010, Oracle Corporation and/or its affiliates