服务质量
与线程关联的服务质量 (QoS) 用于指示所需的性能和电源效率。 每个线程都分配到 QoS 级别。 虽然计划优先级仍然是系统确定下一个要计划哪个线程的main指标,但 QoS 可能会影响核心选择和处理器电源管理。 在具有异类处理器的平台上,线程的 QoS 可能会将计划限制为处理器子集,或指示对特定处理器类的首选项。
开发人员可能已在使用其他设施来控制何时执行,例如用户不在场时、仅在交流/充电时,或取决于电池电量。 QoS 提供了一种影响执行方式的设施。 此设施有助于提高 CPU 效率,从而延长电池使用时间。 此外,此过程有助于降低 CPU 功耗,同时使用交流电源来减少热输出,这可能导致高风扇噪音,甚至出现热限制。
服务质量级别
系统维护多个 QoS 级别,每个级别都具有不同的性能和电源效率。 Windows 为每个 QoS 级别提供计划和处理器电源管理的标准默认设置。 可以通过 Windows 预配修改处理器电源管理和异类计划的每个 QoS 级别的精确优化。 有关性能优化和预配的详细信息,请参阅 处理器电源管理选项。
QoS 级别 | 说明 | 性能和电源 | 发布 |
---|---|---|---|
高 | 窗口应用程序位于前台和焦点中,或声音中,并使用 SetProcessInformation 显式标记进程或具有 SetThreadInformation 的线程 | 标准高性能。 | 1709 |
中型 | 可能对最终用户可见但不处于焦点的窗口化应用程序。 | 因平台而异,在高点和低点之间。 | 1709 |
低 | 对最终用户不可见或听不见的窗口化应用程序。 | 在电池上,选择最高效的 CPU 频率,并计划到高效核心。 | 1709 |
实用工具 | 后台服务 | 在电池上,选择最高效的 CPU 频率,并计划高效核心。 | Windows 11 22H2 |
Eco | 使用 SetProcessInformation 显式标记进程或使用 SetThreadInformation 标记线程的应用程序。 | 始终选择最高效的 CPU 频率,并计划高效核心。 | Windows 11 |
媒体 | 由 多媒体类计划程序服务 显式标记的线程表示多媒体批处理缓冲。 | 降低 CPU 频率,实现高效的批处理。 | 2004 |
最后期限 | 由 多媒体类计划程序服务 显式标记的线程表示音频线程需要性能才能满足截止时间。 | 满足媒体截止时间的高性能。 | 2004 |
服务质量分类
下表显示了支持的 QoS 分类。
源 | 说明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
多媒体基础 | 多媒体类计划程序服务为多媒体方案确定 CPU 资源的优先级。 服务使用媒体和截止时间 QoS 级别标记负责多媒体处理的特定线程,以便在达到性能截止时间的同时提供电源效率。 | ||||||||
API |
通过 SetProcessInformation ,开发人员可以通过切换 PROCESS_POWER_THROTTLING_EXECUTION_SPEED ProcessPowerThrottling 中的功能,将进程显式标记为 HighQoS 或 EcoQoS。通过 SetThreadInformation ,开发人员可以通过切换 THREAD_POWER_THROTTLING_EXECUTION_SPEED ThreadPowerThrottling 中的功能,将线程显式标记为 HighQoS 或 EcoQoS。 |
||||||||
发声 | 确定要播放音频的进程为 HighQoS。 | ||||||||
可见 | 直接拥有窗口 (或是窗口拥有进程的后代的进程) 根据其可见性和焦点状态为其分配 QoS 级别:
|
||||||||
启发式 | 系统会自动为未由上述源分类的线程分配 QoS 级别。 这些启发式方法包括 (但不限于) 线程优先级,其中以较低的线程优先级运行的线程可能意味着较低的 QoS 级别。 |