你实际上需要多少个 CPU 核心

为什么核心更多不等于更快,游戏和生产力对核心的要求有何不同,以及为什么单凭核心数永远无法把两颗芯片排出高下。

更新于

本页内容
  1. 一个核心做什么,第二个何时才帮得上
  2. 游戏要的是几个快核心
  3. 随核心扩展的生产力
  4. 线程,以及为什么一个数永远排不出高下
  5. CPU 在这里是怎样被跟踪的

核心更多不等于更快。一个核心是一个工人,而第二个工人只有在活能拆给他俩时才帮得上忙。有些活拆得干净,有些几乎拆不开,所以你需要多少个核心,是由你做的活的种类决定的,而不是由"更大的数字更好"决定的。

一个核心做什么,第二个何时才帮得上

一个核心一次运行一股指令流。给它两倍的核心,而一项活是一股不间断的流,它并不会跑得更快——第二个核心没有自己的事可做。会加速的,是那些能拆成可以并排运行的独立小块的活:把一帧画面分块渲染、同时编译许多文件、编码视频、跑好几台虚拟机。这些几乎直接随核心数扩展。

让机器显得利落的东西,大多不是这种活。打开一个应用、加载一个页面、你每分每秒察觉到的那种响应——这些靠的是一两个核心跑得快,而不是有很多个核心在场。所以头几个核心极其重要,之后每多一个都重要得少一些,直到你面前的活不再拆得开为止。

游戏要的是几个快核心

一款游戏用力使唤少数几个核心——跑它主循环的那几个——再轻轻用上几个做后台:加载素材、声音、它周围的系统。在这一小撮之外再加核心,它们在你游玩时基本上就闲着,因为游戏没有更多独立的活能交给它们。真正推动一款游戏表现的,是那几个核心跑得多快、以及有多少缓存靠得近,这就是为什么一颗又快的六核或八核,会在同一款游戏里跑赢一颗核心多得多却更慢的芯片。如何选购一颗桌面 CPU 会讲清频率和缓存,以及 AMD 那些多加了缓存的 X3D 芯片如何改变这个比较。

随核心扩展的生产力

另一端是那种你给多少就能拆多少的活。一次渲染、一次长编译、一次批量导出、一堆虚拟机——这些给每个核心分一块,核心越多就越早完成。这里的定量问题换了个形状:不再是你会不会感觉到那些核心,而是这份活花掉你多少时间,以及更多核心能替你买回其中多少。当一台机器整天做的是能扩展的活,核心就是那个会自己回本的规格;当它不是时,核心就是闲着的容量。

线程,以及为什么一个数永远排不出高下

许多芯片每个核心跑两条线程,于是当第一股流在等内存时,核心可以接着处理第二股。它帮的是更多核心所帮的那种可拆分的活,对靠单个快核心应付的延迟敏感型活帮不上多少。所以线程数读起来就像核心数:有助于想象一颗芯片能容纳多少并行工作,而不是用来把一颗芯片排在另一颗之上。

最后这一点是要记住的。核心数和线程数是把一颗芯片对上某种工作;它们并不裁定哪颗更快,因为世代、频率和缓存在两颗数目相同的芯片之间也都在变。一颗更新的八核可以比一颗更老的十二核先完成。先按核心数适合的活的形状去读它,再去读其余的。

CPU 在这里是怎样被跟踪的

一颗桌面处理器是单独一个型号,而不是一族尺寸,所以它的页面只承载一份规格,并在这颗芯片单独出售时,承载一条随时间跟踪的价格,而不是一个标价。这些数字来自厂商的数据手册,从不来自这里跑的跑分,所以它们描述的是一颗芯片被造出来能做什么——而不是它在某人的测试平台上跑得多快,那仍然需要一篇围绕你工作负载写的评测。

我们目录中的每一颗桌面 CPU 都在它自己的页面上,而 如何选购一颗桌面 CPU 会讲清在核心数定下之后要读什么:决定它装进什么的插槽,以及决定你得到什么的缓存与功耗。

常见问题

核心越多总是越好吗?
只对能拆成互相独立的多股工作的活才是——渲染、编译、同时跑好几台虚拟机。拆不开的活,包括游戏和日常流畅度所依赖的许多部分,只会用力使唤几个核心、让其余闲着,所以过了某个点,再多的核心也不会带来你感觉得到的差别。
核心数更高就是更快的 CPU 吗?
单看它并不是。一颗更新的八核可以跑赢一颗更老的十二核,因为频率、缓存和世代也都在变。核心数是把一颗芯片对上某种工作,而不是把两颗芯片分出高下。

本类目的选购指南