Windows性能分析器概述(一)

前言

    Windows Performance Analyzer (Windows性能分析器)是一套功能强大的性能检测工具。我们经常在开发过程中,用它来检测产品的性能;通过与其它工具整合使用,它也很容易被用来作为自动监测软件性能系统的关键部件;对于开发人员来说,它还是一个有效的性能调试工具。

    很多人认为Windows性能分析器是用来检测操作系统性能的,其实它的作用不至于此。对于任何一个基于Windows操作系统的应用程序来说,只要程序中嵌入了基于ETW的事件,Windows性能分析器就能对其进行性能检测。换句话说,您可以用它来检测和调试自己程序的性能。

    还有非常重要的一点,它是免费的!!您可以点击这里免费下载最新版的Windows性能分析器。另外,Windows SDK中也包含该工具。

    我们希望通过翻译MSDN上的Windows性能分析器系列文章让更多人了解、使用这一工具。

 

译者:张昕毅、焦桢

微软亚太研发集团服务器与开发工具事业部

一、Windows性能分析器简介

    Windows性能分析器(简称WPA)是一套功能强大的程序,它能够察看系统和应用程序的行为和资源使用情况。WPA可以用来检查一些性能问题,并获得资源的使用信息。开发人员可以使用WPA更加方便地检测并解决性能问题。

    WPA使用Windows事件追踪(ETW)来收集性能和系统信息。ETW是一种开销很小的性能测试辅助工具,它建立在操作系统之上,任何运行在Windows系统上的应用程序也可以使用它。Windows Vista和Windows Server 2008提供了几百个ETW事件,通过在运行时抓取这些事件,可以获得很多信息。微软支持ETW,并提供了很多相关文档。我们鼓励开发人员和架构师在新开发的程序中使用ETW,这样WPA就能在这些程序上发挥最大的作用。有关ETW的信息请查看本系列第三部分的”Windows事件追踪”部分。

WPA提供3种形式的数据:

  • 图表
  1. 图表的x轴表示时间,y轴表示捕获的事件信息。
  2. 追踪活动生成的多组数据将生成多个图表。一条追踪活动的多个图表上的时间轴保持一致。
  3. 图表中的选定部分可以被放大,这样可以查看更详细的追踪信息。比如,如果一个CPU样本图表显示了一小段时间内的所有活动,用户可以放大其中一块来查看一些异常行为。放大以后用户可以确定是哪个线程或者进程导致了这些异常行为。
  4. 因为一个集合内的所有图表都是相连的,所以用户可以放大所有图表内选定的一个时间段,这样就能够查看这个时间段内所有的相关活动。
  5. 为了获得系统活动的宏观信息,图表可以被覆盖或者合并。任何时候用户想返回原始的图表信息,只需要选择“zooming out”即可。
  6. 关于图表的更多信息,请查看Graphs(英文)。

  

  • 摘要表格
  1. 摘要表格的行表示时间,列表示捕获的事件信息。
  2. 用户可以在表格内显示,隐藏或者调整数据列的位置。
  3. 摘要表格还提供排序和聚合功能。
  4. 摘要表格可以利用符号信息用来显示调用堆栈。
  5. 关于摘要表格的更多信息,请查看Summary Tables(英文)。

 

  • 文本和自定义格式文件
  1. 自定义文件格式可以用作特定环境下的性能评测。
  2. 从WPA捕获的事件信息可以放在各种文件格式中作为输出,比如ASCII或者CSV文件。
  3. 使用Actions语法可以将调用堆栈数据放入输出文件。
  4. 关于生成自定义文件输出的更多信息,请查看Actions(英文)。

   

    其他WPA特性:

  1. 查看调用堆栈-通过WPA,内核可以在事件生成时捕获调用堆栈。生成的事件和相关堆栈信息可以保存在追踪文件中。当堆栈和符号信息结合时,你就可以查看堆栈信息了。
  2. WPA可以用作脚本操作,也能通过命令行操作。通过脚本,WPA可以自动捕获实时性能信息。
  3. WPA事件追踪功能可以在任何时候开启和关闭,不需要系统或者进程重启。这个功能在实时用户环境收集信息的情况下非常有用。
  4. 当追踪信息被捕获时,这个数据可以由本机处理,也可以复制到另外一台机器。比如Windows Server 2008上生成的追踪数据可以在Windows Vista机器上分析。

    以上文章基于Windows Performance Analyzer Overview翻译。