VTune

1649 篇文章 12 订阅
1623 篇文章 23 订阅
英特尔VTune™ 性能分析器
  英特尔VTune™ 性能分析器可通过图形用户界面轻松优化应用性能,而且无需重新编译。它独立于编译器和语言,因此可与 C、C++、Fortran、C#、Java、.NET 等等†一起使用。与只提供调用图分析或一组有限的采样事件的产品不同,VTune 分析器可通过一组丰富的适用于所有最新英特尔® 处理器的调试事件同时实现上述两种功能。
  开发出在运行 Microsoft Windows Vista*、Windows* XP 或 Windows Server* 的最新 64 位多核系统上运行如飞的软件。无需重新编译,并且只需极低的开销(不到 5%),便可以确定性能瓶颈。使用图形界面与强大的 Visual Studio* 与 .NET 集成功能来分析结果。快速探查源代码,确定存在问题的代码行。
  优化多核性能
  内含英特尔线程档案器!对应用进行线程处理后并没有达到您预期的效果?英特尔线程档案器可帮助您调试多线程代码,从而在当今的多核处理器上取得最佳性能。

  英特尔VTune™ 性能分析器 Linux* 版是完全基于 Linux 的解决方案,无论是在单核系统上还是在多核系统上,要使您的软件以最快速度运行,该解决方案都是不可或缺的。无需重新编译,也无需通过超级计算机系统在手持设备上链接,它便能分析应用程序。它功能强大,可处理大型应用程序(源代码超过 1 GB),并支持多核多处理器以及使用最新英特尔处理器的 NuMA 系统。

 

最近一直在做程序的性能调试方面的工作,主要工具就是VTune。与很多专门软件一样,VTune的门槛比较高,上手很慢。现在总算是踏进去一只脚了,先写点入门教程,希望能对后来者有点用处 

1.   What   is   VTune? 
        Intel   VTune   Performance   Analyzer是一个用于分析和优化程序性能的工具,它能确定你的程序的hotspot,帮助你找到导致性能不理想的原因,从而让你能据此对程序进行优化。 

2.   VTune哪里找? 
        Intel的软件都是需要License的,所以软件比较好找,网上可以直接下载到,但需要自己去买License或是去Intel网站申请试用的License。具体的下载点可以google,或是去Intel网站下载。 
        推荐下载最新的稳定版本(非beta版)。目前Linux下可以试用的版本是8.0.4,windows下是8.0.1(8.0.2beta是非测试版,在我的机器上只要跑超过30分钟的程序就会挂掉)。下载时记得下载试用版的License文件,要不然装不上的。 

3.   VTune安装 
        VTune支持的操作系统主要是Linux和Windows。目前已知对VTune支持较好的系统是RedHat   9,   Fedora   Core   1,2,3,4,   RedHat   Enterprise   Linux,   Windows   2000,   XP。   Debian   Linux下我还没成功的装过VTune,而Windows   Vista   则只有最新的VTune   8.0.1   for   windows才支持。 
        在Windows下安装VTune是很简单的,就是运行install,然后基本上一路回车就行。 
        Linux下的安装比较麻烦,因为会涉及到VDK的问题。VDK是VTune   Driver   Kit的简称,VTune要在Linux下安装一个driver才能正常工作,而VDK就是用于编译和安装driver的工具。如果你的内核版本比较老(2.6.9以下),那一般VTune会自带编译好的驱动,这样安装起来很简单。如果你的内核版本高,那么VDK会尝试编译内核,这时就要看点运气了,可能会编译不过(比如Fedora   Core   4,还好现在可以在Intel网站下到编译好的2.6.11的驱动)。对于Fedora   Core   5和6,还得自己先安装kernel   source,安装完还不一定就能编译过。总之如果你想用VTune,建议不要安装太新的发行版本。 

4.   VTune使用 
        VTune有两种工作方式:本地模式和远程模式。 
        本地模式指的是被分析的程序和VTune同时工作在同一台机器上,而远程模式则是指程序在一台机器上,VTune装在另一台机器上。 
        本地模式很简单,大家看VTune自带的教程就可以。这里主要讲远程模式。 
        在远程模式中,被分析的程序和VTune分别装在不同的机器上。比如我们这里有很多的SMP机器,这些机器做为应用程序服务器,24小时开机,装的是Linux,而我的桌面机装的是Windows   XP。现在我需要分析Linux机器中的一个程序的Cache   miss率,所以我在自己的桌面机上装上VTune。但这样还不行,我们得在Linux中装一个VTune   Remote   Data   Collector(RDC)。RDC负责在Linux机器中采集程序的Cache   Miss数据,然后送到Windows下的VTune程序,而Windows下的VTune程序则负责将这些数据显示出来。 
        RDC在哪里下载呢?RDC其实是跟windows下的VTune安装程序在一起的,打开VTune安装程序所在的目录,里面有个叫TarFiles的目录,里面有两个文件,一个是vt_x.x.x_rdc.tar,其中x.x.x是VTune版本号。把这个文件拷到Linux下(用WinSCP或是FTP),解压,然后运行里面的Install.sh。安装RDC也会碰到上面提到的VDK问题,同样,如果你的Linux版本不对,可能会装不上,祝你好运   :P 
        安装完RDC以后,要为自己的账号增加相应的权限,也就是把自己的账号加到vtune这个组里,一般是(usermod   -G   vtune   用户名)。然后,用自己的用户登录,然后运行   /opt/intel/vtune/bin/vtserver(这里的目录根据自己的实际情况更改,这是默认安装目录),就可以看到server   is   waiting之类的界面,这时就可以开启你windows下的VTune开始工作了。 
http://www.sinzy.net/Blog/Read.asp?ID=77&BID=12636

 VTune(TM) Performance Analyzer 是针对Intel芯片的一款性能分析软件。安装文件在喻信ftp/Diansoftware/Temp/Intel VTune目录下。芯片是AMD的同学就不能用了:)

今天摸索着用了一下VTune,基本的用法还是比较简单的,基本使用步骤如下:
(1)新建一个工程:File->new project,一般选Quick Performence Analysis Wizard就可以了。
(2)选择要测试的程序,在弹出的对话框中有Application to Launch,填入Debug文件下的exe程序就行了。
(3)Run Activity:按工具栏上的绿色三角按钮就行了。本来还有些配置可以配的,不过比较麻烦,一般的分析就算了。
(4)完了就会生成很多表,最麻烦的就是怎么看这些数据。左边有这些数据的一个树型列表,可以选择看哪个统计表,中间就是相应的图表现实,图表下面还有一个Legend窗口,解释图表中的符号各是什么意思。下面简单介绍一下这些图表。

统计图表分为两部分:Sampling Result和Counter monitor Result,后面一个顾名思义
应该是时钟监视结果,我没怎么用,主要是前面一个。
Sampling Result又分为几个表,Run1是一个总的表,可以看到Instruction Requied(执行次数)、Clockticks(消耗的时钟时间)和CPI(每次执行消耗的时钟时间)的信息,这三个数据其实知道两个另外一个就可以算出来的,不过都列出来看起来比较方便,Legend窗口中有个绿色箭头可以选择按哪一个指标进行排序。
这时在所有的程序中找到自己要测的那一个,通常就是消耗时钟时间最多的,不是的话看名字也找得到。双击它就可以看到更进一步信息,这时上面的下拉菜单可以选择按函数、文件等查看。我选的是按函数查看,比较容易定位热点。
现在就可以根据占用的执行时间定位一些比较“热”的函数,有的可能是执行时间比较长的,有的可能是执行次数比较多的。然后双击某个函数,就可能看到它的源码,这时右边的列表中给出了一些指令的执行次数和执行时间。经过分析又可以定位一些比较“热”的指令。

接下来就是针对这些比较“热”的函数和函数中比较“热”的语句进行优化。

也可以单独看Instruction Requied的表和Clockticks的表,这时表中就分别只有一项信息,我还是比价喜欢看Run1那个表:)

其实VTune只是一个工具,它只会给出一堆数据,还是要靠人来分析哪些是程序的瓶颈,哪些是可以大大优化的,而哪些是虽然很占时间但是没有什么优化余地的。就好像破案一样,搜集所有的线索以后,侦探最大的作用就在于进行逻辑推理找到最后的真凶。

PS: 我的补充: 其实还有个callgraph分析, 默认是不执行的,不过似乎要程序的map文件, 能得到一个庞大的函数调用树, 每个线程一棵树, 清晰的看出哪些函数是最热的,而且是图形界面,很酷的, 我有时间也来个续集吧.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值