如何让编译程序仅运行在Intel第12代CPU的性能核心(P-core)上?
如何将编译进程指定到Intel 12代的性能核心(P-core)运行
完全可以把编译进程绑定到P-core上,充分利用其单核心性能优势,下面分操作系统给出具体操作方法:
Windows 系统
手动通过任务管理器设置
- 按下
Ctrl+Shift+Esc打开任务管理器,找到正在运行的编译进程 - 右键点击进程 → 选择「设置相关性」
- 在弹出的窗口里,只勾选P-core对应的核心编号(Intel 12代的P-core一般是编号靠前的核心,比如i7-12700K的前8个核心是P-core,后4个是E-core)
命令行启动时指定核心
用start命令的/affinity参数设置核心掩码,掩码是二进制位对应核心的启用状态。比如要绑定前8个P-core,掩码是0xFF(二进制8个1),示例命令:
start /affinity 0xFF make -j1
Linux 系统
用taskset绑定核心
首先用lscpu确认P-core的编号(12代P-core通常是物理核心0到N-1):
lscpu | grep -E 'Core|Thread|Model name'
然后启动编译时绑定到指定P-core,比如绑定到核心0:
taskset -c 0 make -j1
如果要绑定多个P-core,用逗号分隔编号:
taskset -c 0,1,2,3,4,5,6,7 make -j8
配合优先级提升(可选)
用chrt给进程设置实时调度优先级,进一步确保P-core的资源被优先分配(需要root权限):
chrt -f 99 taskset -c 0 make -j1
额外提示
- 既然你的编译器单核心表现更好,建议用单线程编译(比如
make -j1)并绑定单个P-core,避免多线程调度到E-core拖慢效率 - 部分构建工具(如CMake)可以结合核心绑定参数,提前配置好编译任务的运行核心
内容的提问来源于stack exchange,提问作者eccentricOrange
相关产品推荐
相关产品推荐

