- Windows 性能记录器 (WPR) 可捕获系统和应用程序的详细 ETW 跟踪信息,以分析 Windows 8 或更高版本中的性能。
- Windows 性能分析器 (WPA) 可以打开 WPR ETL 文件,并允许您使用透视图和表格来调查 CPU、内存和其他资源。
- WPR 配置文件、场景和日志记录模式可适应不同的情况:从简单的诊断到复杂问题的详尽分析。
- 官方文档、集成配置文件和示例场景有助于 WPR 和 WPA 的实际应用,即使在生产环境中也是如此。

如果您使用 Windows 系统,并且遇到过电脑运行缓慢、突然崩溃或 CPU 使用率无故飙升等问题,您可能想知道如何才能了解系统内部究竟发生了什么。对于这类高级诊断,微软不仅提供了经典的任务管理器,还提供了一套功能更强大的专用工具。
该套件包含 Windows 性能工具包,其中两个实用程序始终协同工作:Windows 性能记录器 (WPR) 和 Windows 性能分析器 (WPA)(请参阅关于 WPR 和 WPA 的完整教程)。其原理非常简单:WPR 捕获系统运行的轨迹,而 WPA 使用图表、表格和高度灵活的过滤器分析这些数据。它们协同工作,使开发人员和系统管理员能够非常精确地检测瓶颈和性能问题。
什么是 Windows 性能记录器?它在 Windows 性能工具包中扮演什么角色?

Windows Performance Recorder 是一款基于事件跟踪 (ETW)的 Windows性能记录工具。它不依赖于简单的计数器,而是激活系统和应用程序级别的事件提供程序,以非常详细地记录 Windows 正在执行的操作:CPU、内存、磁盘和网络使用情况、电源变化、进程创建、等待时间等等。
WPR 是 Windows 性能工具包 (WPA) 的一部分,该工具包包含 Windows评估和部署工具包 (Windows ADK),以及 Windows 性能分析器和旧版命令行工具 Xperf。虽然 Xperf 仍在支持中,但微软已停止对 Xperfview 的支持,所有分析现在都集中在 WPA 中,WPA 的功能更强大、更灵活(请参阅如何使用WPR 和 WPA 中的性能工具来全面分析 Windows)。
其理念很明确:WPR 捕获 ETW 录制文件(.etl 文件),WPA 打开并分析该录制文件。这种分离方式允许您在一个环境(例如,生产服务器)中捕获录制文件,然后将 ETL 文件传输到性能更强大的机器上进行进一步分析。
WPR 有两个实用版本:图形界面版本 WPRUI.exe,旨在提供更便捷的引导式体验;以及命令行实用程序 WPR.exe,它直接包含在 Windows 8.1 及更高版本中。两者共享相同的内部库,但并非所有高级功能在图形界面中都可用。
值得注意的是,WPR 和 WPA 主要面向技术用户:管理员、IT 专业人员和开发人员,他们需要的不只是基本的诊断功能。即便如此,通过一些预配置的配置文件,它们对于检测日常 PC 上常见的性能问题也同样非常有效。
要求以及如何获取 Windows 性能记录器

要充分发挥 Windows Performance Recorder (WPR) 的全部功能,您需要满足一定的最低系统要求。微软明确指出,WPR 需要 Windows 8 或更高版本的操作系统。这意味着它可以在 Windows 8、Windows 8.1、Windows 10 以及当前受支持的 Windows Server 版本上流畅运行。
对于 Windows Performance Analyzer(WPA),除了需要Windows 8 或更高版本外,还必须安装 Microsoft .NET Framework 4.5 或更高版本,因为 WPA 依赖于此框架来提供其高级图形界面,包括交互式图形和非常复杂的动态表格。
WPR 和 WPA 主要通过 Windows 评估和部署工具包 (ADK) 分发。您可以从微软官方下载页面获取Windows ADK,并在可用组件中选择 Windows 性能工具包 (Windows Performance Toolkit) 来安装 WPR、WPA 以及 Xperf 等相关实用程序。
虽然 Windows 8.1 及更高版本已预装 WPR.exe,但如果您想使用 WPRUI 图形界面或最新版本的 WPA,始终建议安装更新后的 ADK。微软还通过 Windows 预览体验计划发布了一些版本,这些版本可能包含一些新功能和改进,之后才会正式发布。
Windows 性能工具包会不断更新。要了解 WPR 和 WPA 的最新功能,Microsoft 会在Windows 性能工具包的“新增功能”部分为每个工具发布专门的章节,详细介绍配置文件改进、界面更改和新增功能。
基本概念:录制配置文件、场景和录制模式
WPR 的核心在于其记录配置文件。配置文件本质上是一组 ETW 事件提供程序,用于捕获特定类型的信息。例如,一个配置文件侧重于 CPU 使用率,另一个侧重于能耗,或者一个专门用于内存使用率。
WPR 内置了大量配置文件,并已按常见性能场景进行分组。因此,您无需深入了解技术细节,即可选择“CPU 使用率”或“电源问题”等配置文件,WPR 将自动启用相应的提供程序;这适用于大多数情况,并能帮助您检测性能瓶颈。如果您只想记录调查典型问题所需的信息,WPR 将是理想之选。
如果需要更进一步,WPR 允许您添加以 XML 格式的 .wprp 文件定义的自定义配置文件。在这些配置文件中,您可以指定特定的 ETW 提供程序、过滤器和高级设置,从而创建高度专业化的录制。这些自定义配置文件可以直接从 WPR 命令行使用,也可以集成到 WPRUI 界面中可见的配置文件列表中。
除了配置文件之外,WPR 还提供了性能场景的概念。这些场景模板根据您要研究的事件类型对典型配置进行分组,例如电源转换场景(断电/开机、睡眠/唤醒)或一般系统活动场景。每次录制只能选择一个场景,这简化了配置并避免了冲突的组合。
另一个关键方面是日志记录模式。WPR 可以直接将事件保存到跟踪文件(ETL)或使用循环内存缓冲区。当需要捕获在特定时间间隔内开始和结束的事件时,例如应用程序启动(请参阅如何执行启动跟踪)、负载测试或完整的电源转换,将日志记录到文件是理想的选择。
相反,基于内存的模式更适合处理可能需要一段时间才会发生的不可预测事件。采用这种方法,您可以长时间保持录制状态而不会填满磁盘,因为缓冲区会被覆盖。当您检测到问题发生时,停止录制,WPR 会将相关内容转储到 ETL 文件中。
您还可以选择不同的细节级别。“轻度”级别可降低系统负载,几乎不会干扰系统,非常适合测量时间或整体性能,而不会显著扭曲结果。“详细”级别则会生成更多信息,适用于深入分析,但代价是会在采集过程中消耗更多资源。
如何在 Windows 10 中访问 Windows 性能记录器
在 Windows 10 中,安装 Windows 性能工具包后,您可以通过多种方式打开Windows 性能记录器界面。最直接的方法之一是使用“开始”菜单:只需在搜索框中输入“Windows 性能记录器”,然后在搜索结果中选择该应用程序即可。
另一种方法是直接从 ADK 安装目录运行 WPRUI.exe。根据版本和语言的不同,该目录可能位于与 Windows 评估和部署工具包关联的“程序文件”文件夹中。或者,您也可以使用管理员权限从命令提示符或 PowerShell 窗口运行 WPRUI.exe,以执行脚本化或自动化录制。
打开 WPRUI 后,你会看到一个相当简洁的界面。主屏幕会显示一个或多个预定义的录制配置文件,通常以基本的优先级评估作为开头。屏幕上有一个主按钮,点击即可使用标准设置立即开始录制;还有一个“更多选项”链接或按钮,点击即可显示高级设置。
访问其他选项,您可以选择其他内置配置文件、更改性能场景、调整详细程度,或选择录制到文件还是内存。在窗口底部,如果您创建了自定义 .wprp 文件或想要合并多个事件集,则可以添加其他配置文件。
配置好场景和需要分析的配置文件后,只需按下“开始”按钮即可开始事件捕获。从那时起,WPR 将根据您设定的标准开始记录系统行为,并列出适合在 WPA 中进行后续分析的系统和应用程序事件。
使用 WPR 运行录制:启动、监控和保存
按下“开始”按钮后,WPR 会立即根据所选配置文件开始记录事件,并显示实时状态界面。在此窗口中,您可以查看记录时间、已用缓冲区大小以及目前已记录的事件总数。
在录制过程中重现要分析的性能问题是一个好主意:打开冲突的应用程序,执行导致速度变慢的操作,强制执行磁盘密集型操作,触发要研究的电源转换等等。所有这些都将被 WPR 构建的 ETW 跟踪记录捕获。
当您觉得已采集到足够的信息后,可以点击“保存”按钮停止录制。此时,WPR 会弹出一个对话框,供您选择输出文件的名称和保存位置。默认情况下,ETL 文件通常保存在用户“文档”文件夹下的一个特定文件夹中,该文件夹通常名为“WPR 文件”。
在同一个保存窗口中,您可以选择输入一段简短的描述,说明生成该记录的原因。当您积累了多个跟踪记录时,这个小细节非常有用,因为它可以让您快速识别每个记录中正在调查的内容,而无需全部打开。
选择路径并填写描述后,WPR 会处理数据,生成 ETL 文件,并提供直接在 Windows 性能分析器中打开跟踪文件或直接关闭工具的选项。您也可以选择打开包含文件的文件夹,手动管理记录文件。
Windows性能分析器:对ETW跟踪进行深入分析
Windows性能分析器是整个流程的另一半。WPR负责采集数据,而WPA则专注于以图形方式分析这些数据。它是一款功能强大的分析工具,其界面将图表、数据透视表和高级文本搜索功能整合到性能数据中。
要在 Windows 10 中启动 WPA,您可以按照类似的步骤操作:打开“开始”菜单,输入“Windows 性能分析器”,然后选择该应用程序。如果您之前使用的是 WPR,也可以在最终的保存对话框中直接选择打开 WPA ,这样新创建的跟踪文件就会自动加载。
WPA 用户界面以一个中央工作区为中心,包含“分析”选项卡和围绕其的多个可停靠窗口。这些面板可以移动并停靠在不同的位置,与其他 Microsoft 技术环境类似。如果您不小心关闭了某个窗口,可以随时从“窗口”菜单将其恢复。
一个关键面板是“图形浏览器”,其中包含当前录制的所有可用图形的缩略图,并按类别组织:CPU、内存、磁盘、系统活动等。展开每个类别后,您可以将感兴趣的图形拖到分析选项卡中开始使用它们。
除了图表浏览器和分析选项卡之外,WPA 还有其他非常有用的窗口:分析向导,提供有关所选图表或表格的上下文信息;问题窗口,列出从评估平台录制中自动检测到的问题;详细信息窗口,包含这些问题的描述和建议的解决方案;以及诊断控制台,收集有关符号加载和解决的异常和详细信息。
在 Windows 性能分析器中打开并查看录制内容
要在 WPA 中手动打开 ETW 跟踪文件,只需转到“文件”菜单并选择“打开”。然后,找到 WPR 生成的 .etl 文件,该文件通常位于“文档”中的“WPR 文件”文件夹中。选择所需文件,然后单击“打开”开始加载过程。
如果跟踪信息来自使用 Windows 评估平台 (WPA) 运行的评估,您也可以直接从结果中访问 WPA。在“查看结果”页面的“问题”面板中,每个问题通常都有一个指向“WPA 详细分析”的链接,该链接提供指向相应评估跟踪信息的直接链接。
录制文件加载完毕后,主分析选项卡会显示为空,直到您从图表资源管理器中拖动一个或多个图表。典型的操作流程是:展开一个类别,将所需的图表拖动到中心区域,然后使用布局控件以及图例和表格侧面板自定义其视图。
每个图表都配有一个名为“图例”的控件,它位于图表左侧,以树状视图的形式呈现,您可以在其中启用或禁用线条、按不同字段对数据进行分组,或调整快速筛选器。图表标题栏右侧是设计图标:一个用于仅显示图表及其图例,一个用于在图表下方添加数据表(包含与图表相同的信息),第三个用于仅显示数据表。
图表与表格的结合尤为实用,因为它能让您直观地将性能峰值或低谷与表格中的特定数值关联起来。此外,WPA 表格是动态的:它们支持分组、排序、筛选和字段选择,使该工具成为 ETW 跟踪的“专用 Excel”。
对WPA中CPU、内存和其他典型场景的分析
WPA 的一大亮点在于CPU 使用率分析。它提供了诸如“CPU 使用率(采样)”或“CPU 使用率(精确)”等特定图表,让您可以查看处理器时间在进程和线程之间的分配情况,以及 CPU 周期实际消耗在哪里。这对于识别硬件瓶颈非常有用。
在这些图表中,您可以更改分组键,按“进程、线程堆栈”、“进程、线程 ID”或“进程名称”查看数据。每个选项都会改变视图:例如,按进程堆栈分组会显示按进程及其所有线程分类的活动,而按线程 ID 分组则允许您隔离特定线程中的瓶颈。至于数据字段,通常会将样本计数(Count)作为主要指标。
除了 CPU 使用率之外,WPA 还提供高级视图,用于检测虚拟内存泄漏、堆泄漏或内存池使用问题(以及诊断缓存故障)。例如,您可以使用“VirtualAlloc Commit Lifetimes”(虚拟分配提交生命周期)图表来精确定位虚拟内存分配泄漏,按类型、进程和堆栈进行分组,并分析以 MB 为单位的计数和大小字段,从而确定内存浪费的位置。
要调查内核内存池泄漏,“池使用情况”图表允许您按类型、分页、池标签和堆栈进行分组,并重点关注累计计数和大小数据。这种分析有助于精确定位占用过多内存的驱动程序或系统组件。在用户级别,您还可以使用“堆分配”图表检查堆泄漏,这些图表基于通过注册表配置的特定跟踪标志。
WPA 还支持所谓的“等待分析”,即检查线程等待和就绪状态,以确定某些进程为何看起来阻塞或空闲。通过使用精确的 CPU 视图以及新进程、新线程、新堆栈和就绪进程/线程的键值,您可以分析最大等待时间、总等待时间和等待计数等字段,从而检测共享资源的阻塞或争用情况。
为了进行更深入的分析,某些视图需要您使用 Windows 映像文件执行选项路径中的注册表项启用“跟踪标记”。启用这些标记后,某些应用程序会生成有关内存分配或内部行为的附加信息,这些信息随后会以更详细的级别反映在 WPA 图表中。
其他高级功能和参考文档
WPR不仅支持通过图形界面或手动命令行进行交互式使用,还提供了一个名为WPRControl的API,允许您从自定义应用程序或高级脚本调用和控制该工具。例如,该API使得应用程序能够在运行测试之前开始录制,并在测试完成后停止录制,从而将跟踪数据保存下来以供分析。
微软官方提供的 Windows 性能记录器 (WPR) 和 Windows 性能分析器 (WPA) 文档非常详尽,包括入门指南、分步操作步骤、详细的功能说明以及全面的技术参考。对于 WPR,您可以找到关于用户界面功能、内置配置文件列表、命令行选项完整语法以及创建和管理自定义 XML 配置文件的专门章节。
对于 WPA,文档详细介绍了用户界面、可用键盘快捷键、图形浏览器操作、分析选项卡的功能,以及如何使用问题、详细信息、分析向导和诊断控制台窗口。此外,还有一个“快速入门指南”,其中包含非常详细的教程,专为初次接触 WPA 的用户而设计。
微软在其开发者博客(DevBlogs)上发布了大量技术博客文章,作为对本文档的补充,这些博客专门介绍性能和诊断方面的知识。这些博客文章包含有关使用 WPR(包括命令行和图形界面版本)的实用文章,以及从 CPU 诊断到电源问题和间歇性崩溃等各种性能问题的实际故障排除示例。
在应用场景方面,WPR 和 WPA 都设有专门页面,列出了典型场景(例如 CPU 使用率过高、内存泄漏、启动缓慢等),并针对每种场景推荐最合适的记录配置文件、图表和分析字段。这样,即使您不是 ETW 专家,也可以遵循这些指南系统地解决问题。
整个生态系统使得 WPR 和 WPA 成为一对非常完善的工具,可用于了解 Windows 及其应用程序的内部行为。与其他较为肤浅的监控解决方案不同,WPR 和 WPA 可以直接处理 ETW 记录的系统事件,从而能够达到排查复杂细微问题所需的详细程度,而这些问题在其他情况下几乎不可能被发现。
只要正确安装 Windows 性能工具包,稍加练习记录配置文件,并熟悉 WPA 图表和表格的操作,您就拥有了一个专业的诊断环境,可以非常精确地监控、捕获和分析 Windows 性能,从 CPU 和内存使用情况到电源转换、线程等待和系统级资源泄漏。
对字节世界和一般技术充满热情的作家。我喜欢通过写作分享我的知识,这就是我在这个博客中要做的,向您展示有关小工具、软件、硬件、技术趋势等的所有最有趣的事情。我的目标是帮助您以简单而有趣的方式畅游数字世界。
