0.     概述

VTune是Intel一个比较强大的性能分析软件。主要包括三个小工具:

(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点,帮助我们收集数据发现问题,至于Analyzer这个功能,有点大言不惭了,还得靠各位大家自己分析了,当然个人认为这一点会是Intel下一步强化该工具的重点。

(2)Intel Threading Checker:用于查找线程错误, 能够检测资源竞争、线程死锁等问题. 大家程序在并行化后,可以通过Threading Checker 检测一下有没有多线程相关的错误。

(3)Intel Threading Profiler:线程性能检测工具,多线程化有可能会有负载比平衡, 同步开销过大等等线程相关的性能问题。该工具可以帮你发现每一个线程每一时刻的状态。

可以简单认为该工具是如下的使用顺序:(发现可以多线程的代码瓶颈)---进行并行等编码阶段---(发现多线程中错误部分)---改正代码bug阶段---(发现多线程中有待提高的瓶颈部分)---优化代码性能阶段。可以看出这套软件针对代码并行的实现有点服务到家的感觉,核心思想就是:”找茬”。

另外推荐一个配套的工具,就是Intel C++ 编译器,可以集成到VS2005或者命令行下,配套使用应该会一些更好的效果,传说中对Intel 的C++ 编译器好像都是赞不绝口的,而且都是自家的东西,Intel肯定不会亏待它的。

还有一个网上推荐的东西,直接粘贴过来,没有了解过,不好多加评论: Intel MKL 函数库,提供了VML 函数, 这些函数可以对超越函数(sin, cos, exp, log等)进行优化。

此外友情提示一下,如果你使用的是AMD的CPU芯片,并一心决定以后继续使用它的话,建议同学你就不用往下看了,理由就不告诉你了^_^

本文章主要是对VTune的一个初级使用的心得总结,有什么不对的大家多扔板砖,算是一个抛砖引玉的作用吧,欢迎大家一起总结完善!

1.    Intel Performance Analyzer

对于该工具使用比较简单,不过直接说一下,软件名称是性能分析,实际上只是对软件操作进行时间上的总结和统计,用户自己需要根据数据进行分析,总体来说,该性能分析工具同IBM的性能分析工具大致一样,个人认为还不如IBM的好用的,呵呵。

基本操作:

(1)新建一个工程:File->new project,一般选Quick Performence Analysis Wizard就可以了。

(2)选择要测试的程序,在弹出的对话框中有Application to Launch,填入Debug文件下的exe程序就行了。

(3)Run Activity:按工具栏上的绿色三角按钮就行了,一般会自动运行程序,这时你执行你想要的操作。本来还有些配置可以配的,不过比较麻烦,一般的分析就算了。

(4)完了就会生成很多表,最麻烦的就是怎么看这些数据。左边有这些数据的一个树型列表,可以选择看哪个统计表,中间就是相应的图表现实,图表下面还有一个Legend窗口,解释图表中的符号各是什么意思。

上图为分析的主界面。对于分析图表的结果,看上去比较多,其实真正有用的就一个(个人看法),首先出现的就是一个框架的分析结果,有一个柱状图来体现各种dll和进程的时间占用统计,当鼠标在每一个柱子上停留,ToolKit会显示该进程的平均执行时间和执行的次数,右侧Summary概述该进程下占用的比例等统计,下面的legend说明机器的配置和一些名次解释。

选择进入相应的进程,则看到对应进程中各个函数的对应信息,在此不再详细说明。这时通过统计图可以发现程序性能主要的花费部分,这时就要运用你对代码的了解和分析、经验发现性能提升的地方,也就是你的性能最应该和最显著提高,这时点击你关系的函数,如果你有该函数的实现文件(cpp),则可以结合Source File进行一些简单的分析,这里可以给你提供源代码和汇编码两种方式来进行体现,供大家选择。在Sampling Results中提供该进程下各个函数的时间统计,定位到每一个执行函数上(通常就是消耗时钟时间最多的,即关键代码)。如图所示:

比如上面这个分析结果,该函数是对图片像素进行优化分类、分割处理、生成结果的功能,具有大量的数字运算和循环,这也是我们最应该和最有效采用多线程等手段提升效率的部分。源码右边的列表中给出了一些指令的执行次数和执行时间。经过分析又可以定位一些比较重点改进的指令。

总结此工具,和IBM的性能分析工具作用大致相同(个人感觉还是推荐IBM的,其实都差不多,主要是先入为主了,而且图形界面比较直观),该工具的Call Graph选项也和IBM那样支持图形分析,但是我在机子上运行会崩溃,不知道为什么。该工具只是将分析的数据呈现给我们,而分析的过程还要依靠大家。另外,在源码上点击会出现一个窗口,显示该行执行的次数等一些分析结果,不过我这个版本该功能还是很弱的,近似于没有用处,可能会在下面的版本有所提升。

注意:

(1)该软件支持Linux系统,如果分析的软件属于跨平台产品,可以根据各自情况查看是否有必要也同事在Linux下分析,个人认为我们的软件没有太大必要,完全可以在Windows下分析,发现问题进行改进,此功能主要针对只运行在Linux平台下的软件的,所以没有进行研究。

(2)该软件支持远程模式,没有发现我们的软件是否有此功能的必要性,没有进行过多研究,只是发现一个帖子知道如何远程,会在附录中添加上。

(3)使用VTune GUI去收集数据可能VTune本身开销会影响分析结果,所以VTune提供命令行的分析模式,基本语法在附件中,个人认为现在我们在图形界面下进行分析也会有很大收获,考虑到时间成本也没有进行过多研究。

VTune工具使用心得相关推荐

  1. App原型设计工具使用心得(下)

    源地址:http://www.cocoachina.com/applenews/devnews/2014/0331/8072.html http://www.raywenderlich.com/646 ...

  2. Win8 用U盘安装(图文详细步骤+准备工具+使用心得)

    Win8的预览版已经出来好久了,相信许多爱折腾的同志们早已经体验到Win8的乐趣了,我也用了几种方法安装Win8,今天就详细说说用U盘安装的步骤,好了废话不多说现在就开始吧. 1.首先你得有台电脑(这 ...

  3. 狼奔代码生成工具使用心得

    狼奔代码生成工具(http://ltfwan.d33140.jit8.cn)是一款为程序员设计的代码生成器,更是一款软件项目智能开发平台,它可以自动生成ASP.NET页面及后台代码,采用了面向服务的架 ...

  4. 【转】百度站长平台MIP引入工具使用心得

    MIP引入主动推送流程 对于 MIP 站点改造好了,我们如何提交数据,并且 MIP 提交后,我们能得到哪些数据的反馈,在这里简单的写一篇文章,说一下. 改造 MIP,我们一般是添加了一个二级域名站点进 ...

  5. Chirpy Zippy工具使用心得

    今天在网上看到MVC开发人员必备的工具中有一个工具叫Chirpy Zippy,可以把项目中的js文件自动压缩成min.js文件,于是就试了下这款工具.上到官网:http://chirpy.codepl ...

  6. 智慧海洋建设——Task1 地理数据分析常用工具学习心得

    地理数据分析常用工具 一.shapely shapely是python中可以处理笛卡尔坐标系中几何对象(点.线.面)的一个库.其功能非常复杂,可以简化我们平时许多操作,下面来说一下我的一些学习理解. ...

  7. 项目分享 | MindSpore Insight AI可视化工具开发心得

    01 概述 MindSpore Insight是昇思MindSpore的可视化调试调优工具.作为开发者,我参与了MindSpore Insight工具部分功能的开发.本文将对MindSpore Ins ...

  8. Balsamiq Mockups原型工具使用心得

    先看看对这个软件的介绍吧! Balsamiq Mockups是产品设计师绘制线框图或产品原型界面的利器.在产品设计的需求阶段,低保真的线框图或者草图设计介于产品流程设计与高保真DEMO设计之间,在Ba ...

  9. iTop 运维工具学习心得-持续更新 版本3.0.1

    1.Portal 名字显示顺序调整 文件路径 iTop\web\datamodels\2.x\itop-portal-base\portal\templates\layout.html.twig 修改 ...

最新文章

  1. dockefile nginx php,dockerfile自动部署nginx+php7
  2. 机器学习和计算机视觉的前20个图像数据集
  3. 学好python薪水有多少笔画_Python学到什么程度可以面试工作?
  4. 【Xamarin 挖墙脚系列:Xamarin SDK开源了................】
  5. django项目验证码(PIL库实现)
  6. 计算机网络方向 CCF推荐会议及期刊
  7. HTTP利用API接口,解密生意参谋
  8. Scrum 敏捷项目管理
  9. 20考研率辉计算机复试(二分法)
  10. 网络操作系统与分布式操作系统的区别
  11. 卧槽!逆天了,Python竟然能打造一款扫描全能王,实现图片纠正!
  12. python爬取淘宝商品评论_Python爬取淘宝评论!听说差评才是最真实的?
  13. 正确安装破解后,打开Matlab R2018a 报错License Manager Error-8
  14. 深入浅出的图神经网络,神经调节的知识网络图
  15. PHP实现生成小程序二维码带参数进入指定页面、小程序URL scheme实现携带数据跳转小程序
  16. JavaScript第八课
  17. 解决使用Arduino IDE 下载esp8266开发版很慢的问题(支持任何版本)
  18. 基于JSP技术和SSM框架的Web聊天系统的设计和开发
  19. 渗透测试服务 甲方公司OA网站系统漏洞测试
  20. 怎么把ppt文字大小设置一致_不想PPT演讲时掉链子?这个实用技巧必须get!

热门文章

  1. 认证授权介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记109
  2. 字符串指针的地址的传递
  3. SQLite 3 中的数据类型
  4. 如何对付vc6的疑难杂症
  5. java 杭电1237简单计算器
  6. 杭电1596find the safest road
  7. echarts中国地图描绘
  8. memcpy与memmove的区别
  9. 随想录(对比着c学java)
  10. python安装详细步骤mac_mac如何安装python3