四、系统需求
下面的表格列出了安装和运行Windows性能分析器所需要的系统配置:
操作系统 | Windows Vista SP1或更高版本,以及Windows Server 2008或更高版本 对于Windows XP SP2 和 Windows Server 2003 SP1 的支持,请参考 本文的“安装” 章节中关于Windows XP的部分。 |
内存 | 1GB以上。如果记录文件大于500MB,推荐使用2GB或更多的内存。如果你需要了解内存是如何分配的,请参考 Session 章节(英文)。 |
硬盘 | Windows性能分析器程序本身大约需要占用50MB硬盘空间。更重要的是,我们必须考虑到Windows性能分析器会将内存信息导出到磁盘。因此,如果我们想要导出更多的信息,就需要预留更多的硬盘空间。一般来说,记录文件不会达到1GB以上。 |
处理器 | 目前支持的处理器包括x86、IA64和x64。 |
以上文章基于System Requirements翻译。
五、Windows性能分析器的安装
我们可以在Windows SDK 2008或MSDN网站上获得Windows性能分析器,并通过双击安装包中的“.msi”文件,或者手工运行安装文件来安装Windows性能分析器。关于如何手工运行“.msi”文件,请参考msdn上的相关在线文档。
在缺省情况下,Windows性能分析器将被安装到 "\Program Files\Microsoft Windows Performance Analyzer" 目录,并于安装完成后,自动将该目录加到系统环境变量PATH中去。如果你选择将Windows性能分析器安装到其他目录,你必须确保系统环境变量PATH中包含Windows性能分析器所在的目录。
Windows XP
Windows性能分析器可以用在Windows XP SP2 和 Windows Server 2003 SP1 上。需要注意的是,在这两种操作系统中,由于不支持所需要的事件收集功能,因此不能支持查找调用堆栈的功能。不仅如此,所有需要将软件追踪信息解码的操作也只有在Vista或者Windows Server 2008上才能使用,其中包括在Windows性能分析器中查看软件追踪信息(Xperfview.exe)。
为了在Windows XP SP2 和 Windows Server 2003 SP1 上捕获所需信息,我们需要执行下面几个步骤:
- 从安装了Windows性能分析器的Windows Vista 或Windows Server 2008机器上,将xperf.exe 和 perfctrl.dll从Windows性能分析器的安装目录拷贝到目标机器(安装了 Windows XP SP2 或Windows Server 2003)上的某个目录,并且将此目录加到系统环境变量PATH中。
- 在目标机器( 安装了Windows XP SP2 或 Windows Server 2003)上,通过使用标准的WPA命令,捕获软件追踪信息。
- 把"etl"文件拷贝到安装了Windows性能分析器的Windows Vista 或Windows Server 2008机器上。
- 参考Quick Start Guide: WPA Basics章节(英文)的介绍,使用Windows性能分析器。
在X64系统中启用 查找调用堆栈功能
在x64系统中,需要通过设置注册表项HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management 中的DisablePagingExecutive键值来启用调用堆栈功能。关于DisablePageExecutive的详细信息,请参考 MSDN。下面是一个如何使用脚本来设置DisablePageExecutive值的实例。
QueryStackwalk64.cmd:
----8<----
@REG QUERY "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive
----8<----
TurnOnStackwalk64.cmd:
----8<----
@REG ADD "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive -d 0x1 -t REG_DWORD -f
@IF NOT %ERRORLEVEL% == 0 echo error: Could not configure system for 64-bit stackwalking. Please run this script from an elevated administrator console.
----8<----
提示:你必须重新启动计算机来使改变生效。
TurnOffStackwalk64.cmd:
----8<----
@REG ADD "HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management" -v DisablePagingExecutive -d 0x0 -t REG_DWORD -f
@IF NOT %ERRORLEVEL% == 0 echo error: Could not remove 64-bit stackwalking configuration. Please run this script from an elevated administrator console.
----8<----
提示:你必须重新启动计算机来使改变生效。
以上文章基于Installation翻译。
译者:张昕毅、焦桢
微软亚太研发集团服务器与开发工具事业部(中国)