跳转到内容

Windows 11 25H2 的调度器、计时器与前台加速

本页内容

这些值控制调度器、定时器分辨率、时钟中断分配以及 DPC 预算。仅凭名称无法确定全部效果:Windows 会应用位掩码并对输入值进行规范化。不同的记录可能设定相同的运行模式。

检查了内核读取哪些调度器和定时器参数、值如何被规范化,以及 Win32PrioritySeparation 的哪些字段各自负责什么。

Windows 11 25H2 build 26200.9168,内核的 scheduler 和 timer paths。具体游戏和应用未纳入测量。

内核参数主表、对 Registry 的运行时访问观察,以及位字段和值规范化的检查。

Registry path Value Type Default Reader/timing
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl Win32PrioritySeparation REG_DWORD 0x02 ntoskrnl.exe,然后是 session initialization
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel GlobalTimerResolutionRequests REG_DWORD 0 kernel phase-0
同一路径 MaxDynamicTickDuration REG_DWORD 0xFFFFFFFF dynamic tick duration limit
同一路径 EnablePerCpuClockTickScheduling REG_DWORD 0 phase-1 clock init
同一路径 DisableLowQosTimerResolution REG_DWORD 1 timer policy init
同一路径 DpcCumulativeSoftTimeout REG_DWORD 120000 DPC budget init
同一路径 ForceForegroundBoostDecay REG_DWORD 0 scheduler init
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\I/O System PassiveIntRealTimeWorkerPriority REG_DWORD 16 I/O worker init

该值由位字段组成。内核分别确定活动应用程序的增强(foreground boost)、量子类型和持续时间。在所研究的版本中,客户端 Windows 的初始值等于 0x02。对输入值应用掩码 0x3F,因此不同的记录可能设定同一种调度器模式。

按位解析位字段、等效值计算器以及延迟和 FPS 的历史测量已移至单独研究«Win32PrioritySeparation: 在 CPU 满载时的延迟和 FPS»。用户侧的问题——选择、效果和还原——由 BoosterX 设置页面涵盖。

该参数改变调度规则。要评估其在具体任务中的益处,需要在 CPU 负载下重复测试并测量延迟;该设置并不保证通用加速。

GlobalTimerResolutionRequests 及相邻的定时器参数从 Session Manager\Kernel 读取。它们影响定时器分辨率请求的作用范围(本地或全系统),以及时钟中断在 CPU 之间的分配。在受支持的平台上,按 CPU 分别调度时钟即使没有强制设置也可能正常工作。

MaxDynamicTickDuration 限制空闲时无周期性时钟的睡眠持续时间。计量单位为 100 纳秒:7500 表示 0.75 ms,而不是 7.5 ms。上限还会进一步受当前定时器分辨率限制。0xFFFFFFFF 会取消额外限制。

DisableLowQosTimerResolution 改变低优先级定时器分辨率请求的限制。此时并不会因此自行设定持续高分辨率。

只有在负载确实执行此类请求时才应更改定时器规则。持续高分辨率会增加定时器中断数量和能耗。

DpcCumulativeSoftTimeout 设定 DPC 总执行时间的预算。其规范化边界、与 DpcWatchdogPeriod 的关系以及相邻的 DPC 参数和 worker 限制已在研究«Windows 11 25H2 中的 DPC 和 Kernel Executive workers»中分析;此处不再赘述。ForceForegroundBoostDecay 改变活动应用程序增强的衰减规则,而 PassiveIntRealTimeWorkerPriority 设定特殊输入输出工作线程的优先级。对于 PassiveIntRealTimeWorkerPriority,代码接受 17..21;如果没有该记录,则使用 16。值 18 是允许的,并会提高优先级。

比较时请考虑计量单位和范围限制。内核会规范化不受支持的值,因此写入的数字可能与实际应用的不同。

这些参数属于系统调度和驱动程序诊断。没有 DPC/ISR 跟踪,就没有可靠依据手动更改它们。

  • 表中所有参数的读取已在 build 26200.9168 的 ntoskrnl.exe 中得到确认:Win32PrioritySeparation 在调度器初始化和 session initialization 时读取,定时器参数在内核初始化阶段读取。
  • 初始值和规范化已确认:Win32PrioritySeparation 的掩码 0x3F,PassiveIntRealTimeWorkerPriority 的范围 17..21 及备用值 16,MaxDynamicTickDuration 的 100 纳秒单位。
  • 观察本身是定性的:本研究未测量延迟、FPS 或后台负载的值。
  • 所研究版本 ntoskrnl.exe 中参数的 readers 和规范化。
  • Win32PrioritySeparation 的初始值 0x02 和掩码 0x3F。
  • boost 和量子字段的含义,MaxDynamicTickDuration 的单位。
  • PassiveIntRealTimeWorkerPriority 在备用值 16 下规范化到范围 17..21。
  • 更改对 FPS、延迟或响应速度的影响。
  • 在没有确实使用定时器和 DPC 的负载时更改的益处。

保留默认值。仅在负载确实执行相应请求时才更改参数,并在相同运行条件下比较结果。

恢复默认值或删除可选记录。内核参数在下次 Windows 启动时应用。

启动 phase 0 时的读取可能不会落入 Procmon 的记录区间。本研究确认了 build 26200.9168 上的读取代码和规范化。文章中未记录独立观察运行(启动和跟踪)的次数,因此 readers 观察本身的可重复性未进行定量评估。未确定对性能或延迟的通用影响。

本研究及所用工具归 BoosterX 开发者所有,因此开发者对结果有直接利益。方法和适用范围已在上文描述,结论可通过公开数据和所列公开来源进行验证。

公开来源检查于:2026-09-02。

  • 2026-09-20: 添加了利益冲突免责声明;统一了 reviewed/modified 日期。
  • 2026-09-19: 添加了「结果」部分、对 Win32PrioritySeparation 和 DPC/worker 参数研究的交叉引用以及 BoosterX 设置页面;记录了观察运行次数的缺失。
  • 2026-09-02: 首次发布;确认了 readers、规范化和位字段,添加了实际益处的边界。