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 |
Win32PrioritySeparation
Section titled “Win32PrioritySeparation”该值由位字段组成。内核分别确定活动应用程序的增强(foreground boost)、量子类型和持续时间。在所研究的版本中,客户端 Windows 的初始值等于 0x02。对输入值应用掩码 0x3F,因此不同的记录可能设定同一种调度器模式。
按位解析位字段、等效值计算器以及延迟和 FPS 的历史测量已移至单独研究«Win32PrioritySeparation: 在 CPU 满载时的延迟和 FPS»。用户侧的问题——选择、效果和还原——由 BoosterX 设置页面涵盖。
该参数改变调度规则。要评估其在具体任务中的益处,需要在 CPU 负载下重复测试并测量延迟;该设置并不保证通用加速。
Timer policy
Section titled “Timer policy”GlobalTimerResolutionRequests 及相邻的定时器参数从 Session Manager\Kernel 读取。它们影响定时器分辨率请求的作用范围(本地或全系统),以及时钟中断在 CPU 之间的分配。在受支持的平台上,按 CPU 分别调度时钟即使没有强制设置也可能正常工作。
MaxDynamicTickDuration 限制空闲时无周期性时钟的睡眠持续时间。计量单位为 100 纳秒:7500 表示 0.75 ms,而不是 7.5 ms。上限还会进一步受当前定时器分辨率限制。0xFFFFFFFF 会取消额外限制。
DisableLowQosTimerResolution 改变低优先级定时器分辨率请求的限制。此时并不会因此自行设定持续高分辨率。
只有在负载确实执行此类请求时才应更改定时器规则。持续高分辨率会增加定时器中断数量和能耗。
DPC budget 和 boost decay
Section titled “DPC budget 和 boost decay”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 开发者所有,因此开发者对结果有直接利益。方法和适用范围已在上文描述,结论可通过公开数据和所列公开来源进行验证。
- Win32PrioritySeparation,Microsoft Learn,检查于 2026-09-01。
- Timer resolution,Microsoft Learn,检查于 2026-09-01。
公开来源检查于:2026-09-02。
- 2026-09-20: 添加了利益冲突免责声明;统一了 reviewed/modified 日期。
- 2026-09-19: 添加了「结果」部分、对
Win32PrioritySeparation和 DPC/worker 参数研究的交叉引用以及 BoosterX 设置页面;记录了观察运行次数的缺失。 - 2026-09-02: 首次发布;确认了 readers、规范化和位字段,添加了实际益处的边界。
