老实砍树很枯燥吧!那就让cpu爆仓!从mc到p社聊聊cpu缓存

现在的 PC 玩家升级电脑,通常都会优先考虑显卡。毕竟从光线追踪到 DLSS,从 2K 高刷到 4K 游戏,显卡性能几乎决定了我们能把画质开到什么程度。

但如果你是《我的世界》《异星工厂》或者 P 社游戏的忠实玩家,可能早就发现了一件奇怪的事情:

明明游戏画面看着非常简单,显卡占用率也不高,玩起来却越来越卡。

《我的世界》刚开档时一切正常,等红石机器、村民交易所和刷怪塔越来越多,游戏就开始出现明显的卡顿。《异星工厂》前几十个小时顺顺利利,等自动化流水线铺满地图,工厂规模上来了,游戏运行速度却肉眼可见地慢了下来。至于《群星》和《钢铁雄心4》,相信很多玩家都有类似的体验:1936年的时间过得飞快,等到了1943年,恨不得亲自帮电脑推着时间往前走。

于是玩家开始怀疑,是不是显卡不够好了?还是内存不够大?然而即便换上一张旗舰显卡,这些情况也未必能得到多少改善。

今天我们就来聊聊这些看似简单的游戏背后,CPU 究竟在忙些什么,以及为什么 AMD 会为了游戏性能,专门给 CPU 堆上几十 MB 的三级缓存。

一、你看着游戏画面,CPU 却在运行另一个世界

先从《异星工厂》说起。

The Brick Base, The Finale! 2K SMP Megabase : r/factorio

The Brick Base, The Finale! 2K SMP Megabase : r/factorio

如果仅仅看游戏画面,《异星工厂》似乎并不是什么特别吃配置的游戏。它既没有复杂的光追场景,也不需要像大型 3A 游戏那样实时渲染大量高精度模型。

但一座真正的巨型工厂,内部运转可能远比画面看起来复杂。

试想一下,你已经在地图上建立了成千上万台生产设备。

每条传送带上的物品需要移动,机械臂需要判断何时抓取、向哪里投放,组装机需要检查材料是否充足,火车需要根据铁路信号和目的地调整自己的运行状态。

游戏每向前推进一小步,都需要更新大量实体的状态。

而且这些计算之间还存在相互依赖。

比如一台机器完成生产之后,机械臂才能提取产品;机械臂将物品放上传送带之后,下一台机器才能收到材料。

这也是为什么《异星工厂》除了 FPS,还有一个非常重要的性能指标:UPS。

FPS 大家都很熟悉,代表每秒显示多少帧画面。而 UPS(Updates Per Second)代表游戏世界每秒完成多少次状态更新。

《异星工厂》通常以 60 UPS 为目标。这意味着 CPU 需要在大约 16.67 毫秒内完成一次世界更新。

只要计算时间超过这个限制,游戏就无法维持正常的模拟速度。

如果 UPS 降到 30,游戏世界甚至会以近似半速运行。你会发现机器变慢、传送带变慢,就连整个工厂的节奏都开始慢下来。

这时候,即便换上更强的显卡,也无法凭空让 CPU 更快地完成模拟计算。

所以对于《异星工厂》这种游戏来说,玩家追求的性能表现,往往和传统 3A 游戏完全不同。

二、《我的世界》的红石机器,为什么能把电脑折腾得够呛?

接下来再看大家更加熟悉的《Minecraft》。

很多人可能觉得,《我的世界》画面都是方块,渲染压力应该不大。但实际上,这款游戏的性能开销也相当复杂。

尤其是 Java 版。

游戏中的生物 AI、红石电路、漏斗、作物生长、液体流动,以及大量实体的行为,都需要按照游戏刻(Tick)进行更新。

正常情况下,《Minecraft》以每秒 20 Tick 的速度推进世界,也就是每次更新拥有约 50 毫秒的时间预算。

假设你建造了一套相当庞大的全自动农场。

农场里有几十个村民、几百个漏斗,大量红石电路和活塞,同时还有水流、掉落物和各种自动收集装置。

游戏必须不断处理这些装置之间的状态变化。

而如果你又在附近修了一座刷怪塔,大量生物的寻路和 AI 判断也会加入计算。

最终,CPU 每次更新世界需要处理的工作越来越多。

当一次更新无法在 50 毫秒内完成时,TPS 就可能跌破 20。

这就是为什么某些 Minecraft 存档明明 FPS 还不错,玩家却能感觉到机器响应迟缓、生物行动异常,或者方块操作存在延迟。

当然,Minecraft 的卡顿原因不止一种。开启高分辨率光影、加载大量区块或者使用复杂材质包,也会产生很明显的 GPU 和内存压力。

但如果问题来自红石机器和实体模拟,仅仅降低画质可能并没有太大帮助。

更有意思的是,即便 CPU 的整体占用率看上去不高,也可能已经出现明显的性能瓶颈。

这是因为游戏中许多计算具有顺序依赖,关键线程完成一次更新所需的时间,会直接限制整个世界的推进速度。

哪怕你拥有十几个 CPU 核心,只要某个关键计算环节跟不上,其他核心也很难直接替它完成所有工作。

当然,这不代表 Minecraft 完全只用一个核心。区块生成、渲染和其他任务也能利用多线程,只是不同工作负载的并行程度存在差异。

三、对于 P 社玩家,最大的敌人可能就是时间

如果说《异星工厂》和《Minecraft》还能看到各种正在运行的机器,那么 P 社游戏就更加抽象了。

尤其是《群星》《维多利亚3》和《钢铁雄心4》。

这些游戏最折磨 CPU 的地方,恰恰是大量玩家根本看不到的后台计算。

先说《群星》。

游戏开始时,银河系中的帝国数量有限,殖民星球和人口也不算多。

但随着时间不断推进,整个银河系会出现越来越多的殖民地、人口、舰队和经济活动。

每个帝国都需要安排人口就业、生产资源、管理行星、评估外交关系,舰队还要计算移动和寻路。

其中最典型的就是人口(Pop)与岗位(Job)系统。

在早期版本中,大量人口和岗位相关的计算曾经是《群星》后期性能的重要负担。P 社甚至在 4.0 更新中专门重构了人口系统,通过人口分组减少需要执行的计算数量。

这意味着,游戏开发者要解决后期运行缓慢的问题,有时甚至需要重新设计核心模拟机制。

而《维多利亚3》则有着另一套让 CPU 头疼的系统。

一个国家看似只有几千万人口,但在游戏内部,人口还会按照职业、文化、宗教等条件划分为不同的人口群体。

这些人口群体又与建筑就业、工资、商品需求、市场供给和经济变化相互联系。

因此,CPU 需要处理的远不止地图上那些移动的单位。

P 社曾在《维多利亚3》的性能开发日志中专门解释过,人口群体数量会显著影响就业系统的计算开销。

随后在 1.10 更新中,开发团队通过调整人口群体的拆分与合并规则,将后期人口群体对象的数量降低了约 25%。

注意,这里减少的是需要计算的人口群体对象,而不是简单删除了四分之一的游戏人口。

至于《钢铁雄心4》,情况又有所不同。

当世界大战爆发之后,大量师团、空军联队和海军舰队都需要根据当前局势行动。

战线 AI 要判断如何部署部队,补给系统要计算物资运输情况,单位还需要处理寻路、战斗、装备和燃料消耗等信息。

在 2023 年的性能优化开发日志中,P 社曾展示过一组测试:同一台测试电脑运行 1943 年的存档时,优化前每个游戏小时的平均模拟耗时约 43 毫秒,优化后缩短到了 29 毫秒。

这意味着游戏世界的推进速度能够获得相当明显的提升。

这几款游戏的共同特点也就很明显了。

地图上看起来可能只发生了一件小事,但游戏在幕后需要更新的状态,可能有成千上万项。

对于这些玩家而言,一台电脑性能好不好,除了看帧率,还要看最高游戏速度下,一年游戏时间究竟需要等待多久。

四、CPU 可能并没有忙着计算,它还在等数据

看到这里,可能有人会问:

既然这些游戏需要处理大量模拟计算,那为什么不直接提高 CPU 主频,或者增加更多核心?

当然有用,但问题没有这么简单。

因为现代 CPU 面临的一项重要性能限制,就是数据访问速度。

CPU 的运算能力已经非常强大,但再快的处理器,也必须先拿到数据才能开始计算。

假设《群星》正在处理某个星球的人口就业情况。

CPU 需要读取人口状态、岗位信息、资源产量和各种加成效果,再根据这些数据计算新的结果。

计算完成后,它又需要继续读取其他人口和星球的信息。

如果相关数据已经在 CPU 的高速缓存中,CPU 就能很快获取。

但如果缓存中没有所需的数据,它可能需要继续向更低一级的缓存,甚至系统内存请求数据。

而 CPU 缓存与普通内存之间,存在明显的访问延迟差距。

你可以把这理解为在图书馆查资料。

CPU 就像坐在桌前做题的人,L1 缓存相当于已经摊开放在手边的纸张,L2 缓存是桌上的资料夹,L3 缓存则是一旁随时可以拿取的资料柜。

至于系统内存,可以理解成距离更远、容量更大的书库。

书库里的资料当然丰富,但如果每计算一次都要跑过去翻资料,时间就会大量消耗在等待上。

CPU 内部的 L1、L2、L3 缓存,就是为了尽可能减少这种等待而存在的。

其中,L1 容量通常很小,但访问速度极快;L2 容量更大;L3 则提供进一步的缓存空间,通常能够被同一组 CPU 核心共享。

而模拟游戏恰恰经常需要重复读取大量结构化数据。

例如人口属性、实体状态、生产配方、单位位置以及各类游戏对象之间的关联。

如果更多经常访问的数据能够保留在缓存中,就可以减少前往系统内存获取数据的次数。

因此,有些游戏的性能瓶颈,除了运算量本身,还来自频繁的数据访问。

《异星工厂》的开发者 Wube 甚至在技术博客中专门讨论过这一点:巨型工厂需要频繁更新大量实体,数据规模可能超出 CPU 缓存的有效覆盖范围,复杂的数据结构也会让 CPU 难以提前预测下一次需要读取什么。

为了解决这些问题,开发者需要从数据组织方式、预取策略等方面进行优化。

这时候,提高 CPU 的缓存容量,就变成了一种相当有吸引力的硬件解决方案。

五、为什么 AMD X3D 处理器在某些游戏里这么强?

现在再来看 AMD 的 3D V-Cache 技术,就很容易理解它的设计思路了。

正常情况下,增加 CPU 缓存容量会占用更多芯片面积。

而 AMD 的方案,是通过先进封装技术,将额外的缓存芯片以三维堆叠的形式与 CPU 核心芯片结合。

例如同为 Zen 5 架构的 Ryzen 7 9700X 与 Ryzen 7 9800X3D。

两款处理器都是 8 核 16 线程,但前者的三级缓存容量为 32MB,后者则达到 96MB。

相当于后者拥有三倍的 L3 缓存容量。

当然,两款处理器在功耗、频率等方面也存在区别,不能把所有性能差距简单归因于缓存。

但在一些对数据访问效率非常敏感的游戏里,大缓存确实能够带来相当可观的收益。

GamersNexus 就曾使用《群星》进行 CPU 游戏模拟性能测试。

与常见的游戏帧率测试不同,这项测试通过记录完成固定模拟任务所需要的实际时间,比较处理器推进游戏世界的速度。

在其 2024 年 Ryzen 7 9800X3D 评测中,9800X3D 完成测试仅需约 25.8 秒,而 Ryzen 7 9700X 需要约 30.3 秒。

换句话说,在这组测试中,9800X3D 能够节约接近 15% 的模拟时间。

两款处理器的核心数量完全相同,而缓存容量却有着相当明显的差距。

在一些传统游戏中,这种优势同样存在。

比如《神力科莎:竞速》,TechSpot 测试中的 9800X3D 平均帧率比 9700X 高约 45%;《家园3》的同组测试中,优势也达到了约 46%。

这说明,大缓存的价值并不局限于模拟经营和策略游戏。

当游戏频繁访问相关数据、CPU 又处于性能瓶颈时,减少缓存未命中和内存访问开销,就有机会带来更快的游戏运行速度。

但如果游戏本身的主要瓶颈在显卡,或者工作负载对于缓存容量并不敏感,那么 X3D 带来的提升也可能很有限。

归根结底,游戏性能需要看具体工作负载。

六、为什么不干脆买一颗核心更多的 CPU?

这也是游戏玩家选购处理器时经常会遇到的问题。

既然游戏里有那么多人口、机器和单位需要计算,为什么不买一颗 16 核、甚至 32 核的 CPU,让它们同时工作?

原因在于,并不是所有游戏计算都适合无限拆分。

比如《异星工厂》里,生产设备之间往往存在相互依赖;《钢铁雄心4》里,部分战略 AI、战线和补给计算也会存在顺序关系。

前一步的计算结果可能直接影响后一步。

如果强行将所有任务分散给大量核心,反而可能增加线程之间协调、同步以及数据传输的开销。

Wube 就曾在《异星工厂》的开发博客中分享过一个有意思的案例:某些计算在改成多线程之后,性能反而下降了。

其中一个重要原因,就是不同线程频繁修改共享缓存中的数据,导致缓存失效和同步开销增加。

当然,现代游戏开发者一直在努力提高并行程度。《都市:天际线2》便尝试充分利用多核心 CPU 来处理城市模拟与路径规划。

但更多的核心,并不自动意味着更快的游戏速度。

尤其对于一些存在关键模拟线程的游戏,单核心执行效率、缓存延迟、内存性能以及程序自身的优化程度,往往都很重要。

这也是为什么我们有时会看到,一颗核心数量并不夸张的游戏处理器,反而比某些拥有更多核心的高端工作站 CPU 更适合玩游戏。

七、那么到底应该怎么选择游戏 CPU?

说了这么多,是不是意味着只要玩《Minecraft》《群星》或者《异星工厂》,就必须买 X3D 处理器?

当然没这个必要。首先,对于已经拥有一颗性能不错的现代 CPU 的玩家来说,大多数普通规模的存档依然能够正常运行。

如果你只是偶尔玩玩 Minecraft 生存、建一座规模不大的工厂,或者进行一场常规规模的《群星》游戏,完全没有必要为了追求极限模拟性能花大价钱升级。

其次,游戏之间的性能瓶颈存在差异。如果主要游玩《赛博朋克2077》《黑神话:悟空》等高画质 3A 游戏,而且使用 2K、4K 分辨率,那么显卡性能往往依然非常重要。

而如果你喜欢大型模拟游戏、超大规模自动化工厂、复杂的 Minecraft 模组整合包,或者习惯把 P 社游戏玩到极后期,那么 CPU 的性能就值得更加认真地考虑。

对于这些游戏,除了 CPU 本身,还需要根据情况关注系统内存容量、内存访问延迟以及游戏版本和模组优化。例如,Minecraft 的大型整合包可能因为内存不足而频繁触发垃圾回收;复杂光影也可能直接让显卡成为瓶颈。这些问题并不能靠增加 CPU 三级缓存全部解决。

另外,X3D 本身也不能取代具体的游戏测试。

不同 CPU 架构、频率、缓存设计与内存子系统之间的组合,可能产生完全不同的结果。如果确定自己主要玩某一款游戏,最理想的方式还是参考相同版本、相同存档或相近场景下的实际测试,而不是只看综合游戏性能排行榜。

写在最后

以前我们评价一台游戏电脑的性能,可能最先想到的就是某款 3A 大作能跑多少帧。但对于模拟经营、沙盒和大型策略游戏玩家来说,还有另一种值得关注的性能。

它决定了《异星工厂》里成千上万台设备能否正常运转,决定了 Minecraft 的红石机器会不会拖慢整个世界,也决定了《群星》里的漫长星际战争,究竟需要消耗玩家多少现实时间。

从这些游戏里,我们也能够看到现代 CPU 设计相当有意思的一面。当处理器已经拥有很高的主频和足够多的核心后,继续提高游戏性能,往往还需要解决数据访问、缓存效率以及计算任务之间的依赖关系。

有时候,增加几十 MB 的缓存,带来的实际收益甚至可能超过单纯增加几个 CPU 核心。当然,大缓存无法解决所有问题。软件优化、处理器架构和内存系统始终在共同影响最终的游戏体验。只是对于那些喜欢在《群星》里统一银河、在《维多利亚3》里建设世界第一工业强国,或者在《异星工厂》里铺满整张地图的玩家来说:

游戏里最大的敌人,可能从来都不是敌国、外星人或者资源短缺,而是那个死活不肯往前走的游戏时间。

更多游戏资讯请关注:电玩帮游戏资讯专区

电玩帮图文攻略 www.vgover.com