能耗改进和 Windows 应用程序性能 - Windows apps

能耗改进和 Windows 应用程序性能 - Windows apps

本指南将演示如何改进 Windows 应用程序耗电方式,并提供有助于提高整体设备性能和电池使用时间的原则。

要降低能耗,最基本原则是确保应用在后台运行时,不会出现以下情况:

使用系统资源、

通过计时器唤醒 CPU、

通过等待 vsync 事件唤醒 CPU。

“后台运行”意味着用户看不到也听不到你的应用。 很少(如果有)有理由在后台运行时唤醒 CPU 或利用系统资源。 可通过检查应用是否触发了这些事件并解决原因,显著降低应用能耗、延长电池使用时间以及减少使用应用的客户产生的碳排放量。

要检查是否会在未使用应用时唤醒 CPU 以执行不必要的工作,可以使用 Windows Performance Analyzer (WPA) 捕获和分析跟踪。 下面逐步介绍如何执行此操作。

捕获跟踪并检查是否存在不必要的工作

在捕获跟踪以分析是否正在执行可能耗尽电量的不必要工作之前,必须设置运行应用时的正确条件。 你可能还想要运行多个跟踪,以在各种条件下测试应用。

安装

通过打开任务管理器并确保 CPU 利用率小于 5%,使测试设备处于空闲状态。 这样做将最大程度地减少测量干扰并提供合理的大小跟踪。

启动应用并导航到预期常用的视图。

最小化应用。 *为了确保应用不会启动不必要的工作,你可能想要在以下情况下重复以下步骤:当你的应用窗口被其他窗口完全遮挡(看不到)时、当你的应用位于前台时,在用户一段时间没有与之交互后。

在后台测量和评估 CPU 使用率

在管理员模式下打开命令行(PowerShell 或命令提示符)。 (如果未在管理员模式下运行,可能会收到错误代码:0xc5585011,“无法启用分析系统性能的策略。”)

输入命令:wpr -start power -filemode

将设备空闲 5 分钟。

输入命令:wpr -stop idletrace.etl

要使用 Windows Performance Analyzer (WPA) 打开跟踪,输入命令:wpa.exe idletrace.etl

打开“计算”“>”图。

导航到进程(或者如果你具有全部进程与应用相关的多进程模型),然后评估 Cswitch 计数“CPU 利用率”。 理想情况下,当应用处于后台时,这些值几乎为 0。 建议通过查看堆栈查找正在使用资源的位置以及如何进行改进。

通过添加“新建线程堆栈”查看唤醒线程的堆栈,来查找过度唤醒。

打开“计算”“>”图。 通过评估代码中执行所花费的时间的位置来跟踪 CPU 利用率问题。

测量和评估在后台等待的 vsync

注意

在调查此更高级的应用场景之前,重点关注上一节中的基本 CPU 利用率。

在管理员模式下打开命令行(PowerShell 或命令提示符)。

输入命令:wpr -start gpu -filemode

将设备保持空闲 5 分钟。

输入命令:wpr -stop gputrace.etl

要使用 Windows Performance Analyzer (WPA) 打开跟踪,输入命令:wpa.exe gputrace.etl

打开“系统活动”>“泛型事件”图。

筛选为“Microsoft-Windows-Dxgkrnl”事件。

将 “进程 ”列拖到第二列。

检查是否正在调用 WaitForVsync。 例如,利用 IDXGIOutput::WaitForVBlank (dxgi.h) 等 API 通过 WaitForVerticalBlankEventInternal 事件。

有关详细信息,请参阅使用 Windows Performance Analyzer 分析新式待机问题。

其他资源

Windows Performance Analyzer 分步指南

Windows Performance Analyzer 常见方案

使用 Windows Performance Analyzer 分析新式待机问题

CPU 分析

Windows 事件跟踪

‬Q&A 论坛‭

Windows Performance Toolkit (WPA) 图形列表

相关推荐

暴雪战网服务器什么时候维护
365bet365官网

暴雪战网服务器什么时候维护

📅 07-26 👁️ 2078
瘵鬼的意思
365bet开户

瘵鬼的意思

📅 08-17 👁️ 6165
天涯明月刀怎么潜水 哪些地图可以潜水
365bet网上足球比赛

天涯明月刀怎么潜水 哪些地图可以潜水

📅 08-20 👁️ 7784
RF射频美体仪BODYTITE推车式
365bet网上足球比赛

RF射频美体仪BODYTITE推车式

📅 07-17 👁️ 9144