单核与多核性能为什么不成正比
讲单核(频率/IPC)与多核(并行度)各决定什么,为什么核心数翻倍性能不翻倍,以及软件能否并行是瓶颈的关键。
结论先行
单核性能由频率与 IPC(每周期指令数)决定,多核性能由并行度决定。核心数翻倍,性能不翻倍——因为多数软件不是所有部分都能并行:串行部分卡住,多核帮不上(Amdahl 定律的直观体现)。所以「核多」不等于「什么都快」。
两个维度各管什么
| 维度 | 决定什么 | 典型场景 |
|---|---|---|
| 单核(频率+IPC) | 最重的那条线跑多快 | 游戏、老软件、单线程工具 |
| 多核(并行度) | 能同时铺多宽 | 渲染、编译、转码、数据库(对照 SQL Server 条目) |
| 两者 | 串行占比决定多核收益上限 | — |
关键:负载里串行部分占比越大,多核收益越小。渲染/编译并行度高,核多收益大;很多游戏主线程是串行的,堆核收益有限。
怎么判断瓶颈在哪
- 装 Windows 后看任务管理器:某核 100% 而别的闲着 = 单核瓶颈(多核没用上)。
- 所有核都跑满 = 多核瓶颈(加核有用)。
- 单核长期顶满 + 多核闲置:优先看频率/IPC,而非加核。
- 对照 Linux 条目 里绑核/并行场景说明做负载分配。
选型与调优
- 单核瓶颈负载:高频/高 IPC 的平台比堆核更划算。
- 多核瓶颈负载(渲染、数据库、虚拟化):堆核收益直接。
- 别拿「核数」当性能唯一指标,先量负载是单核还是多核瓶颈。
- 参数细节查站内搜索。
常见误操作
- 游戏卡就加核 → 主线程串行,加核无感。
- 只比频率不看 IPC/架构 → 同频不同代差异大。
- 拿核数当选购唯一标准,忽视单核。
操作小结
- 先量瓶颈:单核满 or 多核满。
- 单核瓶颈优化频率/IPC,多核瓶颈堆核。
- 串行占比是并行收益天花板。
- 选平台别只看核数。