要确认windows 11中软件实际占用的物理核心,需通过资源监视器查看线程级逻辑处理器绑定(如cpu列显示“6”“7”同属第4物理核心),用任务管理器“cpu关联”列验证是否被人为限制核心范围,再用powershell导出进程-线程-处理器映射并换算物理核心索引统计共享情况。

要确认 Windows 11 中每个软件实际占用了哪些物理核心、各自分配了多少计算资源,不能只看总 CPU 百分比,必须穿透到进程—线程—物理核心的三级绑定关系,否则会把超线程伪并行误判为真实多核负载。
用资源监视器定位进程绑定的物理核心编号
这是唯一能实时看到“哪个线程正在哪个逻辑处理器上跑”的原生方法,且可反推所属物理核心——因为 Windows 将同一物理核心下的超线程编号连续排列(如 CPU 0 和 CPU 1 属于同一物理核心)。
按下 Win + R,输入 resmon 回车启动资源监视器。
切换到“CPU”选项卡,勾选顶部的“显示所有进程的CPU活动”;若未勾选,下方线程列表将为空,导致无法查看任何绑定信息。
在“CPU使用率”表格中,找到目标进程(如 chrome.exe),点击其左侧复选框;此时底部“线程”区域自动展开,列出该进程所有线程。
观察“CPU”列数值:它显示的是该线程当前被调度到的逻辑处理器编号(例如“3”或“12”);【编号为偶数的逻辑处理器(0/2/4…)通常对应物理核心的首个线程,奇数编号(1/3/5…)为其超线程伙伴】。比如看到线程 CPU 列为“6”和“7”,即可判定它们同属第 4 个物理核心(编号从 0 起算,即物理核心 3)。
用任务管理器详细信息页验证处理器关联性设置
如果某软件曾被手动限制只能运行在特定核心上(例如通过右键→“设置关联性”),这个配置会强制改变其核心分配占比,而资源监视器只显示“当前在哪跑”,不体现“被锁在哪跑”——必须在这里确认是否人为干预过。
按 Ctrl + Shift + Esc 打开任务管理器,切到“详细信息”选项卡。
右键任一列标题 → “选择列” → 勾选“CPU 关联” → 点击“确定”。
新出现的“CPU 关联”列显示十六进制掩码(如 0x000000ff),每一位代表一个逻辑处理器:从右往左第 0 位对应逻辑处理器 0,第 1 位对应逻辑处理器 1……若某位为 0,说明该核心对该进程完全禁用。
双击该列任意单元格可临时修改掩码,但【此操作重启后失效,仅影响当前会话】;若发现掩码值远小于系统最大掩码(如 16 核系统应为 0xFFFF),说明该进程被人为压缩了可用核心范围,其核心分配占比已非系统默认调度结果。
用 PowerShell 批量导出进程与物理核心映射快照
当需对比多个进程、或排查后台服务的核心占用时,图形界面效率低,PowerShell 可一次性输出结构化结果,包含进程名、PID、主线程 ID、所在逻辑处理器编号,再结合物理核心编号规律即可算出各进程独占/共享的物理核心数量。
第一步:以管理员身份运行 PowerShell(右键开始菜单 → Windows Terminal(管理员)→ 输入 powershell 回车)。
第二步:执行以下命令:
Get-Process | ForEach-Object { $p = $_; $_.Threads | Select-Object -First 1 | Select-Object @{Name='ProcessName';Expression={$p.ProcessName}}, @{Name='PID';Expression={$p.Id}}, @{Name='ThreadID';Expression={$_.Id}}, @{Name='ProcessorNumber';Expression={$_.ProcessorAffinity.ToString('X')}} } | Sort-Object ProcessorNumber
第三步:结果中“ProcessorNumber”列为十六进制掩码,需转换为十进制后取最低有效位编号(如 0x2 → 十进制 2 → 对应逻辑处理器 2);再根据逻辑处理器编号除以 2 向下取整,得到物理核心索引(如逻辑处理器 2 和 3 都属于物理核心 1)。
第四步:用 Excel 或记事本统计相同物理核心索引出现的进程名频次,即得每个物理核心被多少不同软件共享或独占。











