老實砍樹很枯燥吧!那就讓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