Visual Studio 2010中的Profiler使用

Visual studio 2010 的Profiler是自带的性能工具, 利用它我们可以找出程序中的性能瓶颈,然后不断优化不断再测试。

简介

Profiler有益用向导启动程序和后期附加到程序两种关联被测模块的方式,测试方式也有两种:Sampling(采样)Instrumentation(检测)

  • Sampling:按设置的时间间隔中断计算机处理器并搜集函数调用堆栈。
    调用堆栈是1个动态结构,用于存储有关正在处理器上履行的函数的信息。这个分析方法构成的结果就是各个函数在运行时被采样的次数,次数越大代表开消越大。由于对被测源码不需要更改,所以直接启动或后期附加到被测程序都可以。

  • Instrumentation:在被测源码文件中目标函数的开始和结尾和这些函数对其他函数的每次调用前后插入代码。
    插入的代码记录了以下信息:

    1. 此搜集事件与上1搜集事件之间的间隔。
    2. 在其间隔内操作系统是不是履行了操作。
      例如,操作系统可能读写磁盘,或在目标线程与另外一个进程中的另外一个线程之间进行切换。

根据”ToolsOptionsPerformance Tools“ 下‘Show time values as:’的默许设置为Milliseconds,我觉得采样周期应当是毫秒级,也就是说报告中采样次数可以约等于毫秒。

使用

  1. 用管理员启动Visual Studio
  2. 针对Release版本的程序
  3. 设置好程序所需的pdb路径

通过‘AnalyzeLaunch Performance Wizard…’ 或‘AnalyzeProfilerAttach or Detach…’对被测程序进行新建Performance Session(性能会话), 我们主要介绍下Sampling通过Attach To Process的情况下报告的分析。
Profiler开始后,类似:
enter image description here

当你觉得已搜集了足够的信息可以停止后, 点击‘Stop profiling’, 类似:
enter image description here

上述界面就是报告的Summary, 我们开始分析程序的性能瓶颈。

  • ‘Hot Path’指的就是采样次数高的,也就是性能瓶颈的函数。

  • ‘Inclusive Samples’指的是该函数整体被采样的次数,说白了,就是函数本身和它所调用的所有子函数的总共开消大小。

  • ‘Exclusive Samples’指的是该函数本身被采样的次数,说白了,也就是函数自己的开消大小,不包括它所调用的子函数的开始。

  • ‘Funcions Doding Most Individual Work’指的是开消最大的单个函数,因此它的指标是用‘Exclusive
    Samples’来表示。

通过上述几个介绍,我们就能够从图中得到性能瓶颈的函数, 然后根据Call Tree可以得到完全的调用上下文。

例如,在Summary界面中点击CallTree,依照‘Inclusive Samples’排序,依照开消大小展开方法,终究就能够得到开消大的函数上下文, 类似:
enter image description here

固然,我们也能够通过上面的过滤条件选择”Modules“、”Threads“等方式来找到自己关心的瓶颈。
另外, 我们还可以在Summary界面选择‘Show Just My Code’和适当的CPU时间段来过滤。

参考:Analyzing Application Performance by Using Profiling Tools

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Visual Studio 2010中的Profiler使用

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡