新式待机 SleepStudy

从 Windows 8.1 开始,实现了新式待机电源模式的所有 Windows 电脑中都以内置组件的形式提供了软件工具 SleepStudy。 SleepStudy 可以在影响最小的情况下衡量新式待机性能。 有关报告内容的详细信息,请观看下面的视频。

观看此视频,了解如何使用 SleepStudy 查找并修复导致电池意外消耗的组件。

在新式待机期间,跟踪系统活动和电池消耗可能会很困难,因为跟踪本身可能会导致不必要的活动和电池消耗。 例如,传统的基于磁盘的日志记录具有不必要的副作用,即在激活磁盘进行日志记录时会导致电池使用量过多。 相比之下,SleepStudy 工具旨在避免产生可能干扰其测量的新式待机性能的活动。

在新式待机期间,测量功耗的最详细方法是使用检测系统,该系统是一种具有功耗测量导线的物理系统,这些导线与每个相关的主要硬件子系统相连。 但是,由于工程成本的原因,在许多情况下,这种详细程度的测试是不切实际的,并且已经出售给客户的系统通常无法以这种方式进行测试。

SleepStudy 工具提供有关每个新式待机会话的概要信息。 此信息包括活动时间、空闲时间和消耗的电量。 会话在系统进入新式待机状态时开始,并在系统退出此状态时结束。

SleepStudy 还提供了有关在每个新式待机会话期间发生的活动原因的第一级信息。 利用此功能,可以轻松地调查长时间运行的活动。

电池信息:每个 SleepStudy 报告最后都会提供有关系统电池配置的信息。 除了名称和制造商外,此信息还包括电池大小和设计容量。 电池大小和设计容量对于 SleepStudy 尤其重要,预估新式待机电池续航时间会考虑这两个因素。

在某些情况下,容量比将超过 100%。 这是预料之中的,并且会随着电池化学成分的变化而随时间而变化。

有关运行 SleepStudy 和解释结果的详细信息,请参考以下视频:

运行 SleepStudy

SleepStudy 工具从命令提示符窗口运行,并且易于使用。 SleepStudy 输出易于阅读的 HTML 报告。

若要运行 SleepStudy,请以管理员身份打开命令提示符窗口,然后输入以下命令:

powercfg.exe /SleepStudy

为响应此命令,内置的 powercfg.exe 命令行工具会在当前工作目录中创建一个名为 Sleepstudy-report.html 的 HTML 文件。

高级选项

默认情况下,SleepStudy 报告涵盖了系统前三天的运行情况。 若要更改 SleepStudy 报表涵盖的持续时间,请使用 powercfg.exe 工具的 /duration 选项。 使用此选项,可以指定一个附加参数,该参数是 SleepStudy 报告涵盖的天数(最多 28 天)。

例如,若要生成最近七天系统运行情况的 SleepStudy 报告,请以管理员身份打开命令提示符窗口,然后输入以下命令:

powercfg /sleepstudy /duration 7

有关powercfg.exe 的详细信息,请参阅 Powercfg 命令行选项

支持 TShell 的 SleepStudy 报告

在 2004 之后 Windows 版本中,可以在支持 TShell 的移动映像上直接以 HTML 格式生成 SleepStudy 报告。 为此,请连接到 TShell,导航到数据分区中的可写目录(例如,“cd c:\data\”)并运行“powercfg /sleepstudy”。 在 Windows 版本 2004 及更早版本中,导航到可写目录后需要执行以下步骤,才能以 XML 格式生成报告并将其转换为 HTML。

  1. 运行以下命令:

    powercfg /sleepstudy /xml
    
  2. 将在本地目录中生成的 sleepstudy-report.xml 复制到主机

  3. 运行以下命令:

    powercfg /sleepstudy /transformxml <path to sleepstudy-report.xml>
    

屏幕关闭会话超过 10 分钟时,会在移动设备上自动生成睡眠研究痕迹,并保留过去 7 天的痕迹。 默认情况下,报告包含过去 3 天的信息,但可以使用“/duration”标志延长时间范围。

报表详细信息

从 Windows 版本 2004 开始,在新式待机系统上,SleepStudy 报告将整理为一系列的状态更改,主要为“活动”、“屏幕关闭”和“睡眠”状态。 因此,尽管整体的新式待机会话被定义为屏幕关闭再重新打开的一个实例,但 SleepStudy 报告会将这种情况细分为停止系统(屏幕关闭状态)所用的时间,以及处于长期低功率状态(“睡眠”状态)的时间。 以前的版本只显示整个新式待机会话的详细信息。

对于每种状态,报告顶部提供了概述信息,其中包含指向 HTML 报告中详细信息部分的超链接。

SleepStudy 报告还包含:

  • 有关硬件平台、操作系统安装和固件版本的静态配置信息。
  • 过去 72 小时使用情况趋势的图形视图。
  • 各状态段的摘要表,其中包括:
    • 开始时间、结束时间和持续时间。
    • 电源(交流电或电池供电)。
    • 消耗的电池电量和平均功耗。
  • 每个屏幕关闭会话都包含其他详细信息
    • 摘要表中包含的信息。
    • 阻止系统从停止立即进入睡眠状态的任何阻止程序。
  • 每个睡眠会话都包含其他详细信息
    • 摘要表中包含的信息
    • 新式待机会话中最活跃的五个组件(“主要违规者”)。 为每个组件显示的信息包括组件类型、名称和设备路径(如果适用)。
    • 空闲时间的直方图图表。
  • 有关系统电池配置的信息,包括设计容量和循环计数。

本主题的其余部分介绍了一个示例 SleepStudy 报告,并说明了如何解释报告并了解它所包含的信息。

系统信息

每个 SleepStudy 报告均以基础的系统信息开头,包括系统名称和固件版本。 此信息非常重要,因为对操作系统、固件和 BIOS 的更改会对新式待机电池续航时间产生严重影响。

每个 SleepStudy 报告还包括系统使用情况的图形视图,其中包含新式待机时间段。

图形以颜色编码。 绿色、橙色和红色部分分别对应于低、中和高系统活动量。

图形覆盖的默认时间段为三天。

图形由虚线、实线和无线部分组成,分别表示交流电源、电池供电和系统关闭时间段。 每个 SleepStudy 报告中均包含以下图形图例。

汇总信息

每个 SleepStudy 报告都包含一个表,该表汇总了报告中评估的新式待机会话。

摘要表中的每一行都包含有关新式待机会话的一种状态的信息。 摘要表中的行使用颜色进行编码,以标识可开展调查以进行改进的会话。

颜色编码

从 Windows 版本 2004 开始,新式待机会话分为“屏幕关闭”和“睡眠”状态,睡眠研究报告中行的颜色基于几条主要规则

  1. 如果会话时间少于 2 分钟,则不显示详细数据。
    • 如果它是“屏幕关闭”会话,则将其标为绿色,因为大多数屏幕关闭会话预计时间都非常短。
    • 如果它是“睡眠”会话,则将其标为灰色,因为没有任何信息可以根据消耗量或 DRIPS 状态下的时间来确定它是良好的会话还是不佳的会话。
  2. 如果会话时间为 2 分钟或更长时间,则“睡眠”和“屏幕关闭”会话将按照以下消耗量和 DRIPS% 阈值着色
    • 对于屏幕关闭会话,这是:
      • 红色表示每小时的消耗速率 >= 1%
      • 黄色表示每小时的消耗速率介于 0.33% 到 1%
      • 绿色表示其他所有情况
    • 对于睡眠会话,这是:
      • 红色表示每小时 DRIPS 速率 <80% 或每小时消耗速率 >= 1%
      • 黄色表示每小时 DRIPS 速率介于 80% - 94% 或每小时消耗速率介于 0.33% 到 1%
      • 绿色表示其他所有情况
  3. 如果有红色的子阻止程序,则父会话也将标为红色。 明显不正确的第三方子阻止程序将标为紫色。

按照设计,某些会话处于活动状态(红色的行)。 但可以预计的是,大多数会话都反映为低活动和低功耗状态(绿色)。 配色方案旨在使潜在的高消耗会话易于识别。 最应关心的是显示电池耗电持续较高的长会话(长达数个小时),因为这些会话对电池的影响最大。

旧版颜色编码

20H1 之前,每个新式待机会话的颜色编码是基于耗电率和最深层运行时空闲平台状态 (DRIPS) 率(低功耗百分比)的组合。 根据以下规则,颜色由消耗速率或 DRIPS 速率的最差性能决定:

  • 红色表示至少有以下情况之一:
    • DRIPS 率 < 80%。
    • 每小时耗电率 >= 1%。 (如果每小时耗电率 >= 1%,则新式待机电池续航时间最长为四天。)
  • 橙色表示至少有以下情况之一:
    • DRIPS 速率在 80% 到 94% 之间。
    • 消耗速率在 0.333% 到 1% 之间。 (如果耗电率低于 0.333%,则平台在新式待机状态下将达到最少 12 天的电池续航时间。)
  • 绿色表示其他所有情况。

耗电率计算

SleepStudy 通过使用平台电池和充电子系统提供的剩余产能信息来计算消耗速率。 在每次 SleepStudy 会话的开始和结束时都会记录电池容量,以毫瓦时为单位。 电池容量信息由平台通过 ACPI 命名空间中的电池设备对象下的 ACPI _BST 控制方法提供。

摘要信息列表

摘要表包括以下基本信息(从左到右):

  • 会话编号(左侧列)从 1 开始,并且为在此期间报告的每个会话进行递增。 默认报告期为最近三天。
  • 开始时间(当地时间)以 YYYY-MM-DD HH:MM:SS 格式显示。 同一天的附加会话不会重复年月日信息。
  • 新式待机会话的持续时间(以小时:分钟:秒格式显示)。 此持续时间涵盖了从切换到屏幕关闭到随后切换到屏幕打开之间的大致时间。
  • 能量变化显示所消耗的绝对毫瓦时 (mWh) 数量和电池最后一次完全充电容量的相对百分比。 如果会话中剩余容量没有发生变化,则用连字符 (-) 表示,如上例汇总表中的会话 6 所示。
  • 能量变化显示所消耗的绝对毫瓦时 (mWh) 数量和电池最后一次完全充电容量的相对百分比。 如果会话中剩余容量没有发生变化,则用连字符 (-) 表示,如上例汇总表中的会话 6 所示。
  • 变化率(以毫瓦为单位)以及交流(充电)或直流(放电)电源指示器。 变化率的计算方法是将能量变化值除以持续时间值。
  • 低功耗状态时间百分比将 DRIPS 率和(如果适用)硬件 DRIPS 显示为 SoC 驻留在最低功耗状态 (DRIPS) 的时间百分比。 硬件 DRIPS(以 HW 表示:在驻留百分比之前)仅适用于基于 Intel 和 Qualcomm SoC 的 Windows 电脑。

SleepStudy 报告不会跟踪不到 10 分钟的整体新式待机会话。 若要测量新式待机性能,整体会话持续时间应大于 10 分钟。 较长的时间段(超过一小时)可以反映真实的用户体验。

不会跟踪交流会话的能量变化(由“变化率”下的“变化”关键字指示)。 此信息在其他报告(例如 powercfg/energy 命令生成的报告)中捕获,因为平台在交流电源上运行时所使用的能量策略不同于平台在电池(直流)电源上运行时所使用的策略。 通常,这些策略不太严格,并且允许不同的用例。 摘要表中的每一行都是指向 SleepStudy 报表中显示的每个会话详细信息的超链接。

会话详细信息

报告的“每个会话详细信息”部分首先重复摘要表中的会话信息。

该表可以显示以下类型的违规者:

  • Fx 设备。 一种具有驱动程序的设备,该驱动程序实现了对 Windows 电源框架(PoFx)的支持。 通常,这种类型的设备驻留在 SoC 本身上。
  • 激活器。 可以在新式睡眠期间保持系统处于活动状态以执行有价值的工作的软件组件。 (在前面的示例中,名称 BI 用于标识中转站基础结构,它是一个协调后台任务执行的 Windows 软件组件。)
  • 网络。 网络子系统设备或组件。
  • 处理人。 在启用激活器之外发生的 CPU 活动时间。
  • PDC 阶段。 进入或退出新式待机状态的不同阶段所花费的时间 - 这最适用于“屏幕关闭”状态。 有关详细信息,请参阅为新式待机准备软件
  • 其他。 包括其他跟踪信息。 例如,已启用的激活器之外的 CPU 利用率在“类型”下列出为“其他”。

“主要违规者”表中的每个组件均按活动时间进行颜色编码。 如果繁忙程度超过 10%,则行会以红色突出显示。 如果组件的活动状态介于 5% 和 10% 之间,则将它标为橙色。 否则,组件行以绿色突出显示。

退出原因

详细信息部分还包括“睡眠”和“屏幕关闭”会话的退出原因。

睡眠和屏幕关闭原因

以下退出原因会将系统从“新式待机”(“睡眠”或“屏幕关闭”)唤醒为“活动”状态。

退出原因代码 退出原因
0 Unknown
1 电源按钮
3 SC_MONITORPOWER
4 用户输入
5 AC/DC 显示突发
6 用户显示突发
7 PoSetSystemState
8 SetThreadExecutionState
10 会话解锁
11 屏幕关闭请求
12 视频空闲超时 (VIDEOIDLE)
13 策略更改
14 睡眠按钮
15 Lid
16 电池计数更改
17 宽限期
19 动态分区
20 休眠或关机
21 系统空闲超时 (STANDBYIDLE)
22 邻近感应传感器
23 热备用
25 恢复 S4 显示脉冲 4
26 终端
27 PDC 信号
28 AC/DC 显示脉冲抑制
30 Winrt API
31 输入键盘
32 输入鼠标
33 输入触摸板
34 输入笔
35 输入加速计
36 输入 Hid
37 输入 UserPresent
38 输入 SessionSwitch
39 输入初始化
40 PDC 信号:Windows 移动电源通知
41 PDC 信号:Windows 移动 Shell
42 PDC 信号:你好小娜
43 PDC 信号:全息 Shell
44 PDC 信号:Windows Biometric Framework 指纹
45 定向 DRIPS:Device-S4
46 显示器变暗
47 内置面板
48 显示所需的 Undim
49 已取消电池计数更改
50 从睡眠状态转换
51 终端初始化
52 PDC 信号:传感器 - 检测到人类存在
53 电池预临界状态
54 输入触控

仅睡眠(非屏幕关闭)退出原因

以下退出原因是系统可以在不进入活动状态的情况下从“睡眠”状态唤醒为“屏幕关闭”状态的原因。

退出原因代码 退出原因
16777216 PDC 任务客户端:未知
16777217 PDC 任务客户端:网络刷新
16777220 PDC 任务客户端:维护计划程序
16777221 PDC 任务客户端:同步客户端
16777222 PDC 任务客户端:网络共享客户端
16777223 PDC 任务客户端:SleepStudy 核算
16777224 PDC 任务客户端:Windows 更新客户端
16777225 PDC 任务客户端:LAN 唤醒
16777227 PDC 任务客户端:终端服务器远程会话
16777228 PDC 任务客户端:服务会话
16777229 PDC 任务客户端:用户模式关闭客户端

另请参阅