Vtune
是
intel
的一款性能分析工具,其既可以分析某种应用的特性,也可以检测整个系统的特性,能够找出热点瓶颈的所在,给开发者提供良好的优化思路。
Vtune
有
windows
版本和
linux
版本,有收费的,试用的,免费的。本人使用的是一款试用版本,
vtune
地址
http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/
,下载前需要注册账号,得到序列号,安装的时候需要用到。
安装
vtune
需要在
root
账号下,或者使用
sudo
进行安装,安装成功后,需要将用户加到
vtune
这个
group
下,才能够使用
vtune
。
Usermod –aG vtune user
3.1
分析应用程序
amplxe-cl
-collect hotspots -r test_hot ./test
通过上面的命令可以收集到
test
应用的热点数据,保存在
test_hot
目录下。还可收集
locksandwaits
,
lightweight-hotspots
等类型数据,具体可以使用
amplxe-cl
–help
查看详细方法,或者
man amplxe-cl,
当然
source /opt/intel/vtune_amplifier_xe_2011/amplxe-vars.sh(
这是
vtune
的安装成功后得到的文件
)
之后,
vtune
命令才能够直接用
需要注意的是,在检测java应用的时候,如果需要得到
jit
的信息,在运行前,需要设置环境变量
export
AMPLXE_EXPERIMENTAL=1
3.2 Amplxe-runsa
和
Amplxe-runss
Amplxe-runsa
,系统模式的性能分析;
Amplxe-runss
,用户模式的性能分析。
Amplxe-runsa
能够分析出整个系统的热点瓶颈,使用实例如下所示,其中
test
为收集数据目录。amplxe-runsa –target=host
-r ./test
Amplxe-runss
分析的是用户模式下的热点瓶颈,使用实例如下,
test
为数据数据目录,
app
为应用。amplxe-runss
-r test -- app
amplxe-runss
可以
attach
到某个进程上去,进行监测收集。amplxe-runss –t
cpu –r ./test -target-pid=<integer> -interval=<integer>
3.3
生成统计数据
用命令行生成统计结果,
amplxe-cl
-report hotspots -r test_hot -report-out test_out
,其中
hotspots
为上面
collect
的收集数据类型,
test_hot
为收集数据的目录
test_out
为统计的结果文件。
用
vtune
自带的图形工具查看结果,例如在
ubuntu
下,使用
ampx-cl-gui
。在图形界面下看到的数据会丰富一些,有助于分析,例如能够看到
CPI
等信息。
Amplxe-cl,amplxe-runss,amplxe-runsa
都可以
attach
一个进程,
-target-pid=integer,
但是出来的
report
是没有
jit
信息
的,用
vtune
起动的应用,最终才会生成带
jit信息
的report
Specjbb lightweight-hotspots
Using result path `/home/xxx/test/specjbb2005/specjbb_hot'
Executing actions 16 % Loading data files
Warning: Cannot load data file
`/home/xxx/test/specjbb2005/specjbb_hot/d
ata.0/tbs1381903680.tb6'
(tbrw call "TBRW_dobind(tbrwFile->getHandle(), streamIn
dex)" failed: Invalid sample file (24)).
Executing actions 50 % done
Error: Error 0x4000001e (Cannot load raw
collector data)
上面的报错是因为sample
数量太多了,因此在生成lightweight
-hotspots的时候会出错,在减少采样的情况下,可以避免上面的错误
解决办法
:
加参数
-target-duration-type=medium,
这时产生的结果数据文件较大,
windows
下
vtune gui
打开很长时间没有反应
将参数设置为
-target-duration-type=long
,这是产生的文件会小一些,
vtune
gui
打开就没什么问题了。
实际上还有个参数
-duration xxx
,
xxx
单位为
seconds
,就是让
vtune
检测
xxx
这些秒,将数值设置得小一些,也可以达到上面的效果,不过只是监控了程序的一部分,应用程序没有完全跑完。
分享到:
相关推荐
Intel VTune ProfilierIntel VTune ProfilierIntel VTune Profilier
- C++中的线程池实现:可以使用std::packaged_task和std::future等构建线程池。 5. 性能优化与分析 - Amdahl定律:计算并行化带来的速度up极限,考虑并行部分的比例和串行部分的影响。 - GPU编程:CUDA或OpenCL...
通过使用VTune,开发者可以提升应用的运行效率,减少延迟,提高系统整体性能。 **4. Core i7.pdf** 这个文件很可能是关于Intel Core i7处理器的详细技术手册或用户指南。它可能涵盖了Core i7的技术规格、特性、...
2. **VTune.doc**:Intel VTune Amplifier是一款性能分析工具,可能在文档中探讨了如何使用VTune来优化代码性能,识别CPU和内存瓶颈,以及如何提升软件运行效率。 3. 图片文件(24.jpg、22.jpg、25.jpg、27.jpg、13...
文档提及了英特尔公司及其产品的一系列标志和商标,包括Intel® Core、Intel® Atom、Intel® SpeedStep、MMX、Pentium®、VTune™、Xeon®以及Intel® 标志。这些标志和商标在全球范围内受到保护,并且通常被应用于...
标签“优化”、“文档”和“源码”表明这个压缩包包含的不仅仅是代码,还有可能有关于优化过程的详细文档,这可能是经验总结、技术报告或者调试笔记,对于理解代码的优化思路和过程非常有帮助。而“编程优化大赛”则...
英特尔公司及其标志、Intel Atom、Intel Core、Intel SpeedStep、MMX、Pentium、VTune 和 Xeon 是英特尔公司的商标。 由于文档是通过OCR技术扫描的,可能有些文字被错误识别或者漏识别,因此需要读者自己理解并使...