与线程关联的服务质量(QoS)用于指示所需的性能和电源效率。 每个线程都分配到 QoS 级别。 虽然计划优先级仍然是系统确定下一个计划线程的主要指标,但 QoS 可能会影响核心选择和处理器电源管理。 在具有异类处理器的平台上,线程的 QoS 可能会将计划限制为处理器子集,或指示特定处理器类的首选项。
开发人员可能已使用其他设施来控制何时执行,例如用户不存在时、仅在 AC/充电上或取决于电池电量。 QoS 提供了一种影响执行方式的设施。 此设施有助于提高 CPU 效率,从而延长电池使用时间。 此外,此过程可以帮助降低 CPU 能耗,同时在 AC 电源上运行,以减少热输出,这可能导致高风扇噪音,甚至导致热限制。
服务质量级别
系统维护多个 QoS 级别,每个级别具有不同的性能和电源效率。 Windows 为每个 QoS 级别提供计划和处理器电源管理的标准默认设置。 可以通过 Windows 预配来修改处理器电源管理和异类计划的每个 QoS 级别的精确优化。 有关性能优化和预配的详细信息,请参阅 处理器电源管理选项。
QoS 级别 | 描述 | 性能和电源 | 释放 |
---|---|---|---|
高 | 在前台和焦点中或具有声音的窗口化应用程序,并使用 SetProcessInformation 或具有 SetThreadInformation 的线程显式标记进程 | 标准高性能。 | 1709 |
中等 | 可能对最终用户可见但不是焦点的窗口化应用程序。 还包括在用户处于非活动状态的时间段后降低前台应用程序的 QoS。 | 根据平台的不同,在高和低之间。 | 1709,非活动功能:Ge 2025.05 |
低 | 对最终用户不可见或无法听到的窗口化应用程序。 | 在电池上,选择最有效的 CPU 频率,并将计划安排到高效的核心。 | 1709 |
效用 | 后台服务 | 在电池上,选择最有效的 CPU 频率,并将计划安排到高效的核心。 | Windows 11 22H2 |
生态 | 使用 SetProcessInformation 显式标记 或 SetThreadInformation线程的应用程序。 | 始终选择最有效的 CPU 频率和计划以高效核心。 | Windows 11 |
媒体 | 多媒体类计划程序服务 显式标记的线程表示多媒体批处理缓冲。 | CPU 频率降低,以便高效批处理。 | 2004 |
限期 | 多媒体类计划程序服务 显式标记的线程,以表示音频线程需要性能才能达到截止时间。 | 高性能以满足媒体截止时间。 | 2004 |
如何禁用用户不活动功能
默认情况下,Windows 可能会将前台应用程序的 QoS 策略降低到中等 QoS,因为用户处于非活动状态(未检测到任何输入)之后。 可以通过设置以下注册表值来禁用此功能:
-
路径:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling
-
值名称:
DisableUserPresenceQos
-
值类型:
REG_DWORD
-
数据值:
-
1
(功能已禁用) -
0
(已启用功能)
-
警告
错误地编辑注册表可能会导致系统不稳定。 在进行更改之前,请始终备份注册表。
服务质量分类
下表显示了支持的 QoS 分类。
源 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
多媒体基础 | 多媒体类计划程序服务 优先考虑多媒体方案的 CPU 资源。 服务标记负责使用媒体和截止时间 QoS 级别的多媒体处理的特定线程,以便在满足性能截止时间时提供电源效率。 | ||||||||
应用程序接口 |
SetProcessInformation 使开发人员通过在 PROCESS_POWER_THROTTLING_EXECUTION_SPEED 中切换 功能,将进程显式标记为 HighQoS 或 EcoQoS。SetThreadInformation 使开发人员通过在 THREAD_POWER_THROTTLING_EXECUTION_SPEED 中切换 功能,将线程显式标记为 HighQoS 或 EcoQoS。 |
||||||||
听得见的 | 确定要播放音频的进程是 HighQoS。 | ||||||||
可见 | 根据窗口的可见性和焦点状态为直接拥有窗口的进程(或属于窗口拥有进程的后代)分配 QoS 级别:
|
||||||||
启发式 | 系统会自动为未由上述源分类的线程分配 QoS 级别。 这些启发法包括(但不限于)线程优先级,其中线程优先级降低的线程可能意味着较低的 QoS 级别。 |