因为本人也是该工具的初学者,所以本文的内容可能会浅一些,甚至还包括一些本人的
主观臆测,如果大家有不同意见欢迎指正,呵呵。

Intel VTune的下载地址,请点击这里。

本文所使用的DEMO示例与之前的一篇文章中的DEMO相同,代码链接。

因为本文使用的DEMO是基于Parallel.For,所以会创建一些线程,而这些线程的创建运
行时间会通过Intel VTune的分析结果给出。

首先假设大家已下载并安装了该软件,然后我们通过点击菜单"File"-->"New Project",
会弹出创建项目的提示框,我们选择"Call Graph Wizard"项目类型,并命名为"Parallel_For"
如下图:

在接下来的提示窗口中会提示对什么类型的应用程序进行分析优化,我们选择.Net*
profiling如下图:

然后系统会提示我们.net应用的类型,因为示例代码是.net命令行类型,所以我们选择
“Executable(可执行)”,如下图:

当点击“下一步”按钮会,系统会提示绑定相应的应用程序路径,我们点击“...”按钮
选择DEMO的生成文件路径,如下图:

然后在最后的完成窗口中,我们保持系统默认选项即可,如下图:

到这里,我们点击“完成”按钮,系统会自动运行DEMO的EXE文件,并完成相应的图形绘
制工作。

下面我们看一下其生成的图形化信息:

这里主要看的是各线程模块运行时间信息,当我们将鼠标放在相应的“线程”图标上时,
如下图:

    
     在本DEMO示例中,我们看到线程0的耗时时间是最长的,即1,377,719,162微秒
(注:1秒 = 1,000,000微秒)。我们可以将鼠标放在该线程关联的后续箭头指向的相应.NET模
块,看一下其各个MODULE耗时的长短,比如说“Ex1Task2_UseParallelForMethod”方法:

下面我们再看一下System.Console.ReadLine()方法的耗时,如下图:

通过对比可以看出System.Console.ReadLine()方法要比Ex1Task2_UseParallelForMethod
耗时近10倍,而System.Console.ReadLine()中最耗时的模块调用又是什么呢?见下图:
    

按说找到了最耗时的操作之后只要在Intel VTune中击该模块的鼠标右键,选中弹出菜单的
“View Source”项就会打开相应的源码,然后就可以进行相应的程序优化的。

但因为本例中最耗时的地方在.net框架中的readline模块,因此如在该模块上点击“View
Source”会报错,如下图:

如果此时选择“是”按钮,则Intel VTune会调出“汇编窗口”进行显示:)

当然,除了查看运行时间之外,我发现该软件还可以帮助我们分析.net模块被加载的次数,
比如说我们使用"Ctrl+F"调出查询窗口,在里面输入"get_DefaultScheduler",如下图:

我们会看到该模块只被加载过一次,并且还就在"线程0"中(双击该方法即可看到),这应
该是在线程池会在创建时初始化的线程调度器,其主要的作用应该就是“管理调度”线程。因此
它只被创建一次(在当前进程下,如果是多进程的话,会在每个进程中初始化一个线程池)。当
然在并行框架中的Task也有相应对象:TaskManager(其采用工作窃取技术让CPU保持全速工
作状态),可以参见园子里这位朋友的文章。

还有就是如果那位朋友有四核处理器或双CPU的机器,也可以跑一下该这DEMO,并测试一
下相应的模块的加载运行时间和次数,看看有什么不同。

本人机器环境:

好的,今天的内容就先到这里了,因为该工具过于强大,只能一步步摸索着使用,所以有
些观点或问题不能完成解释清楚。

Tags:Intel VTune,性能,线程,并行,Parallel

原文链接:http://www.cnblogs.com/daizhj/archive/2009/01/13/1374973.html

作者:代震军,daizhj

网站主页:http://daizhj.cnblogs.com

使用Intel VTune性能分析器分析.NET模块运行时间相关推荐

  1. 使用英特尔® 图形性能分析器分析实际游戏性能

    Philipp Gerasim... 于 星期一, 04/07/2011 - 21:28 提交 作者:郭胜.Philipp Gerasimov.Neal P. 和 Bonnie Aona 英特尔公司软 ...

  2. python性能分析工具模块_python——关于Python Profilers性能分析器

    1. 介绍性能分析器 profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述.Python中含有3个模块提供这样的功能,分别是cProfile, profile和ps ...

  3. UE3 性能、分析及优化

    性能.分析及优化 概述 通用维护 基础工具和技术 内存分析 内容分析和优化 CPU 性能 游戏线程性能 渲染线程性能 GPU 性能 网络分析 移动设备分析 概述 使游戏可以正常运行的同时符合内存约束条 ...

  4. Intel VTune基本使用介绍

    前言 Intel VTune Amplifier是intel公司开发的一款强大的性能瓶颈分析软件,能帮助开发者找出性能影响因素,它支持Linux* OS,Windows* OS,Android* OS ...

  5. 关于Python Profilers性能分析器

    1. 介绍性能分析器 作者:btchenguang profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述.Python中含有3个模块提供这样的功能,分别是cProf ...

  6. Windows性能分析器概述(一)

    前言 Windows Performance Analyzer (Windows性能分析器)是一套功能强大的性能检测工具.我们经常在开发过程中,用它来检测产品的性能:通过与其它工具整合使用,它也很容易 ...

  7. MySQL的SQL Profiler性能分析器

    MySQL从5.0开始提供了SQL Profiler性能分析器,其主要用途是显示sql执行的整个过程中各项资源的使用情况.这个工具可以很好的展示出SQL的性能问题. 下面我们从五个角度并举例介绍MyS ...

  8. ue4场景没阴影_UE4性能调试分析常用方法

    UE4性能调试分析常用方法 本文将介绍使用UE4开发项目常用到的性能分析的命令 UE4使用命令的方式是在游戏运行的时候按~键就可以输入命令了 显示CPU和GPU端执行耗时命令: stat UNIT 这 ...

  9. php phpanalysis2.0,使用phpAnalysis打造PHP应用非侵入式性能分析器

    使用phpAnalysis打造PHP应用非侵入式性能分析器,查找PHP性能瓶颈. 什么是phpAnalysis phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发.测试及生产环 ...

最新文章

  1. 32位与64位下各类型长度对比
  2. 信息安全系统设计基础第一周学习总结
  3. C# WinFormDataGrideView 用内存数据源时的注意事项
  4. java.lang.NullPointerException: Project directory not specified
  5. linux tcp文件分包_畅谈linux下TCP(下)
  6. 《小团团团队》【Alpha】Scrum Meeting 3
  7. 津巴布韦 apn_津巴布韦的回忆-你负担不起回家
  8. 免积分下载百度文库的文章
  9. 设计原则SOLD之 —— 单一职责原则SRP
  10. LeetCode—面试题:移除重复节点(哈希集合)
  11. vs2013 c++項目轉 vs2008
  12. vijos 1540 月亮之眼 并查集
  13. 【设计模式】-状态模式->APP抽奖活动(源码与类图解析)
  14. 微信里怎么添加预约链接_分享公众号预约怎么做
  15. 互联网晚报 |12/2星期五 | 天猫向ofo及戴威索要5亿借款;优衣库创始人称在中国开3K家店还不够;国美电器回应已被破产清算...
  16. java中缓存的原理
  17. 用python画熊_Python数据可视化:Pandas库,只要一行代码就能实现
  18. web前端大作业 (仿英雄联盟网站制作HTML+CSS+JavaScript) 学生dreamweaver网页设计作业
  19. icomoon 下载及使用
  20. 人体部位检测:BodyHands

热门文章

  1. 京东11·11:撬动数据中心的支点——京东阿基米德
  2. 解决linux病毒导致带宽跑满的解决过程 ,可以参考参考
  3. C# 给PDF添加图片背景
  4. VC问题 IntelliSense:“没有可用的附加信息”,[请参见“C++项目 IntelliSense 疑难解答”,获得进一步的帮助]...
  5. DELL备份恢复系统的小工具 Dell DataSafe Local Backup
  6. 遇到一个由于事务控制不当造成错误的Bug
  7. 如何应对5G带来的新安全挑战
  8. 防止非法链接(referer)
  9. 开源,是一种新的平台之战
  10. 对称加密----AES和DES加密、解密