
具體來說,我正在考慮 i5-3570k 或 FX-8350,但這讓我想到了一個更普遍的具體問題,即多個核心如何改善一般多任務處理。
閱讀了大量評論、基準測試等,基本上都說同樣的事情:在大多數應用程序中,主頻較快的4 核I5 擊敗主頻較慢的8 核FX,除非該應用程序經過專門編碼以利用超過4 個核心的優勢。尤其是遊戲在 i5 上運行得更好。
但當我閱讀時,我注意到幾乎所有基準測試都是在真空中完成的。也就是說,基準測試或軟體是唯一被測試的東西。雖然這對於測試特定軟體很有好處,但它幾乎不是現實世界的場景。
例如,在一天中的任何時候,我可能會打開多個具有多個選項卡的瀏覽器,可能是 Photoshop 或 Visual Studio,以及多個後台程式(防毒、steam、keepass 等)。那是在晴天。
所以我的問題是:理論上,雖然速度更快的4 核心處理器可以更快地自行運行單一軟體,但8 核心處理器不能更好地同時運行多個軟體嗎 即使它們不一定是8 核心嗎?優化的?
答案1
Linux CPU 負載
一項有用的措施是 Linux 的概念CPU負載。基本上,可以將每個 CPU 核心視為 1.00 個可用負載單元,並且以 100% 的核心運行的每個任務視為使用了 1.00 個負載單元。對於處理密集型伺服器,理想的負載可能正是 CPU 核心的數量(4 個 CPU 核心的負載為 4.00)。
繁忙循環(類似「while(true)」)可能會佔用 100% 的 CPU,即 1.00 個負載單位。單線程基準測試也達到了 1.00 的峰值。多核心最佳化基準測試可能會佔用更多核心,FX-8350 上最多可佔用 8.00 個核心。
但是,大多數應用程式(開啟 Chrome + Firefox、Photoshop、Visual Studio)在背景運行時不會消耗那麼多 CPU。誠然,它們可以在多個核心上運行,但如果它們只使用10% 的可用時間(0.10 個負載單位),那麼這四個應用程式加起來只會達到0.40 個負載,並且您看不到擁有多個CPU 核心的好處。同樣,忙於阻止磁碟或網路存取的應用程式在等待時不會使用 CPU 時間。
平均負載 > 4.00
對於應用程式負載介於 4.00 和 8.00 之間的情況,FX-8350 的效能可能會脫穎而出。 4 核心 CPU 上的 5.00 負載可能會導致大量 CPU 資源爭用,任務之間的任務切換會加劇所涉及的開銷。
平均負載 < 4.00
不過,您的問題似乎是關於數學不太明確的時代:8 個核心是否會更好地處理低於 4.00 的工作負載。對於相當穩定的伺服器類型的工作負載,您可以執行一些基準測試並查看是否確實有任何好處。對於不斷變化的日常計算工作負載,沒有明顯的贏家。
答案2
這在很大程度上取決於應用程式、作業系統及其執行工作的方式。
如果應用程式被設計為單線程,則任何額外的核心都不會提高其效能。但是,如果作業系統足夠智能,能夠以這種方式分配工作,則您可以使用其他核心運行其他應用程式。因此,額外的核心可能會帶來一些額外的好處,特別是對於同時運行的多個應用程式。
額外的核心不提供更多的 I/O 能力。因此,如果應用程式主要受 I/O 限制,則額外核心帶來的效能提升可能不會很大。