1. 概述
VTune是Intel一个比较强大的性能分析软件。主要包括三个小工具:
(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点。
(2)Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题
(3)Intel Threading Profiler:线程性能检测工具,多线程可能存在负载比平衡, 同步开销过大等线程相关的性能问题,该工具可以帮你发现每一个线程每一时刻的状态。
2. 安装
linux上,解压文件vtune_amplifier_xe_2011_update1.tar.gz;
执行install.sh脚本,跟据提示下一步就可以;
安装一个windows客户端VTune_Amplifier_XE_2011_update3_setup.exe,用于将收集的数据进行图形界面展示。
3. 使用
VTune有两种工作方式,我们一般使用的是远程模式,
本地模式是被分析的程序和VTune同时工作在同一台机器上
远程模式是指程序在一台机器上,VTune装在另一台机器上
1)启动需要分析的应用程序,以is_searcher_server为例
/home/admin/intel/vtune_amplifier_xe_2011/bin64/amplxe-cl -collect hotspots is_searcher_server -c conf/searcher_server.cfg -l conf/searcher_log.cfg -k restart -d
其中,amplxe-cl是指列出本机所支持的分析类型,这里选择-collect hotspots收集热点,
还有amplxe-cl –report-list; 可支持的报告类型。
更多见http://software.intel.com/zh-cn/blogs/2010/11/10/amplxe-cl/
后面就是服务的启动参数。
服务启动后,会自动生成一个数据文件,名为r000hs(之后生成的会自动命名为r001hs,r002hs…)
2)启动其它服务程序,在施压一段时间后,停止被分析的程序(也就是这里的is_searcher_server)
这时,r000hs里存的就是收集的数据信息。要注意,一定要停止被分析程序,否则数据不会生成到r000hs里面。
3)启动windows客户端VTune_Amplifier_XE_2011_update3_setup,将数据r000hs导入,步骤如下:
file->open->result,将r000hs加载,但此时会很慢,解决办法,使用sumba共享服务器,将linux文件在windows下共享,
sudo su进入root权限,
修改samba密码
smbpasswd -a admin;
New SMB password:
Retype new SMB password:
启动samba服务
/etc/init.d/smb start
在win7下,地址栏输入测试机的ip,就可以访问了,也可以将地址映射为网络驱动器,方法,
计算机右键->映射网络驱动器,在弹出的界面,输入相应的路径,如图所示,
之后将\\10.20.137.40\admin\search\bin\r000hs 加载。
4)加载后,界面如图所示,
其中Top-down Tree以树形结构展示每个调用所花费的时间及所占比,可以从时间花费最多的地方往下一层一层的展开,找到关键函数,分析其性能,
上图我们可以看到,关键函数evaluate所花费的时间比占11.3%.
另外可以通过Bottom-up来查看函数/模块/线程调用的时间耗费,如图所示,
其中,Function /call Stack是指函数调用的时间,还有其它选项,使用者自已点点就明白了。
5)补充说明,加载后如果看不函数信息,需要添加路径,在Module里找到被分析的程序(is_searcher_server),
双击后,在弹出的对话框中,将服务的路径加上去,然后点击Analyse Type窗口右上角的Re-resolve,就可以看到函数调用情况了。
vtune只能告诉我们性能热区,具体为什么成为热区,需要使用者跟据自已的经验和对项目的理解去分析并试验,从而优化性能。