异类线程调度策略:大小核调度与三个隐藏电源设置¶
定位:大小核(P 核 / E 核)平台的调度机制与设置方法。
适用场景:Intel 12 代及以上的混合架构 CPU,出现"负载跑到小核上导致帧率反而下降"、或需要显式控制长时间运行的线程落在哪类核心时。
一、问题的来源¶
Intel 12 代起采用性能核(P-core,大核)+ 能效核(E-core,小核)的混合架构。线程放在哪类核心上,直接决定该线程能拿到多少性能:
- 大核:IPC 与频率都更高,适合游戏主线程、渲染线程等长任务;
- 小核:能效好、单核性能明显更低。
Windows 10 对混合架构调度支持有限,Windows 11 的 Thread Director 才与硬件协同工作。即使如此,长任务被调度到能效核仍可能造成帧率下降,而这类现象只看整体 CPU 占用率是看不出来的。
二、三个控制项与解锁方法¶
Windows 通过处理器电源管理子组里的三个隐藏设置控制这类行为:
| 设置项 | GUID | 作用 |
|---|---|---|
| 生效的异类策略(Heterogeneous policy in effect) | 7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5 |
决定核心的休眠优先级(哪些核心优先休眠/保活) |
| 异类线程调度策略(Heterogeneous thread scheduling policy) | 93b8b6dc-0698-4d1c-9ee4-0644e900c85d |
长时间运行线程的处理器首选/约束 |
| 异类短运行线程调度策略(Heterogeneous short running thread scheduling policy) | bae08b81-2d5e-4688-ad6a-13243356654b |
短时线程(多来自后台进程)的落核偏好 |
三者在多数系统上默认隐藏在电源选项界面之外。解锁方式:
# 方式一:powercfg 取消隐藏(管理员)
powercfg -attributes SUB_PROCESSOR 7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5 -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR 93b8b6dc-0698-4d1c-9ee4-0644e900c85d -ATTRIB_HIDE
powercfg -attributes SUB_PROCESSOR bae08b81-2d5e-4688-ad6a-13243356654b -ATTRIB_HIDE
方式二:注册表 —— 在处理器电源子组下把三项的 Attributes 由 1 改为 2
HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\{GUID}\Attributes = 2
解锁后在「控制面板 → 电源选项 → 更改高级电源设置 → 处理器电源管理」中可见,可分别设置 AC / DC 值。也可用 PowerSettingsExplorer 一类工具直接编辑(工具介绍见电源计划创建与优化指南)。
三、取值语义¶
3.1 异类线程调度策略 / 短运行线程调度策略¶
| 选项 | 行为 |
|---|---|
| 自动(Automatic) | 系统按负载自行决定,默认值 |
| 高性能处理器(Performance processors) | 仅使用性能核(大核) |
| 首选高性能处理器(Prefer performance processors) | 大核空闲时优先用大核,大核繁忙时才用能效核 |
| 高效处理器(Efficiency processors) | 仅使用能效核 |
| 首选高效处理器(Prefer efficiency processors) | 优先用能效核 |
| 所有处理器(All processors) | 完全不做区分,任意核心 |
3.2 生效的异类策略¶
| 策略编号 | 行为概要 |
|---|---|
| 0 | 按「处理器性能放置最小核心数量」休眠;休眠优先级依次为超线程 → 小核 → 大核(Windows 11 默认) |
| 4 | 按处理器利用率决定休眠(Windows 10 默认) |
| 1 及其他 | 行为随版本变化、相对复杂,日常不建议改动 |
3.3 选择原则¶
- 纯 P 核机器 / 纯大核可用:选"高性能处理器"即等价于"只用大核";若个别程序需要小核分担,用"首选高性能处理器"。
- 不确定时保持"自动"。这两项是全局设置,对所有进程生效,选错会让本不该被限制的线程得不到小核分担,或让后台线程挤占大核。
- 想只针对某个游戏做落核绑定,正确工具是进程亲和性(Affinity,可用 Process Lasso 一类工具按进程设置),不是改全局电源策略。全局策略与按进程亲和性是两件事,不要混用。
- 跨 Windows 版本默认值不同:Windows 10 默认策略 4、Windows 11 默认策略 0,恢复默认时不要照抄另一版本的值。
四、与 tweakbyjie 的边界¶
tweakbyjie 当前不包含异类线程调度策略的执行项。原因是该设置与具体 CPU 架构强相关(AMD 全系无大小核、Intel 有大小核、纯 E 核机型又不同),没有普适的安全默认值,需要按机器判断,不适合放进统一菜单。
本机为 i7-12800HX(8P + 8E),属于该设置确实有实际意义的机型;若要调整,建议先记录三项现值(powercfg /query SCHEME_CURRENT SUB_PROCESSOR <GUID>),改完用帧时间(1% Low)做前后对照,而不是只看平均帧。
五、验证方法¶
# 查看三项当前值(AC)
powercfg /query SCHEME_CURRENT SUB_PROCESSOR 7f2f5cfa-f10c-4823-b5e1-e93ae85f46b5
powercfg /query SCHEME_CURRENT SUB_PROCESSOR 93b8b6dc-0698-4d1c-9ee4-0644e900c85d
powercfg /query SCHEME_CURRENT SUB_PROCESSOR bae08b81-2d5e-4688-ad6a-13243356654b
对照测试应至少记录:平均帧、1% Low 帧、帧时间曲线,以及任务管理器中游戏主线程的实际落核。设置层"写入成功"不等于运行时收益,判断标准见Windows 优化原则与风险。
事实核查记录¶
| 声明 | 核查结果 |
|---|---|
三个设置项 GUID 分别为 7f2f5cfa-...、93b8b6dc-...、bae08b81-...,且默认隐藏 |
✅ 属实:微软异构电源调度官方文档与多份社区实测一致;三 GUID 在本机注册表 PowerSettings\54533251-... 下均存在(实测确认) |
powercfg -attributes ... -ATTRIB_HIDE 可解锁隐藏项;注册表方式为把 Attributes 由 1 改为 2 |
✅ 属实:与微软 powercfg 机制一致,社区大小核调度教程给出同一路径 |
| 调度策略六种取值语义(自动 / 高性能处理器 / 首选高性能处理器 / 高效处理器 / 首选高效处理器 / 所有处理器) | ✅ 属实:中文界面表述与社区文档逐项一致 |
| Windows 10 默认"生效的异类策略"为 4,Windows 11 默认 0;线程调度策略默认"自动" | ✅ 属实:社区大小核调度整理文档给出两版本默认值对照 |
| 仅修改这三个设置不能解决所有大小核问题(如部分游戏无法启动) | ✅ 属实:社区文档明确指出该设置主要在大小核性能接近时用于避免小核不参与,非万能解 |
| 全局策略与按进程亲和性是不同机制 | ✅ 属实:前者作用于调度器落核偏好,后者作用于进程可运行处理器集合,二者可同时存在且可能冲突 |
| tweakbyjie 无异类线程调度执行项 | ✅ 属实:Modules/ 各文件未见相关 GUID 或 Heterogeneous 写入 |
参考链接: