對於某些商業場景的應用,至強就是要比I5,I7快,而且快不少。
作為一個當過DIY,工作後又寫過程式的人,來簡單說說我對至強處理器優勢的體會。
至強出現前,有個處理器叫Pentium Pro,這個其實就是至強的前身,問過電腦城的老闆,人家的解釋就是這玩意是伺服器用的,快取大,可靠性高。
但那個時候是賽揚266超頻400到大戰K6-2 300的時代,後來的賽揚300A更是把奔騰II都比的沒有價效比了,作為一個普通玩家,感覺快取那麼大有啥用呢?
好幾年後,工作中需要將SUN SPARC 處理器上的程式移植到x86平臺上,當時開發測試環境的處理器是UltraSPARC IV ,主頻只有1G多點,有16M L2 ;而選擇移植開發測試的x86伺服器配備5100的至強處理器,主頻2.66G,有4M L2。開發測試用機都是雙處理器。
當時這個程式主要是資料庫查表程式,資料量的大小大概有1G-3G那麼大,為了速度,資料庫引擎和表空間全部在記憶體中。一般的業務,完成一個回話,需要查表幾次到十幾次。
由於x86的CPU頻率大概是前者的一倍,我們開始期望移植後效能會自動有50%左右的提升,但實際情況是,重新編譯移植的程式,在主頻更高的至強上,處理能力只有原來的80%左右。
後來我們花了大概兩週時間才找到原因:較大的查詢資料量+程式程式碼前後呼叫的關聯性太強,至強的L2小,快取的資料少,執行中要經常去記憶體呼叫,而前者快取大,這個問題不突出。
這方面的最佳化搞起來非常麻煩,需要修改整個程式的結構,而且需要查詢的資料量放在那裡,資料方面基本沒法最佳化,我們最後只進行一些比較容易的最佳化,效能只有原來的1.2倍左右,為了提高效能,我們又花了幾周,將程式的處理架構改成了能在4路CPU上執行的,效能提高到原來2倍的樣子。
我後來懷著好奇,將這個程式碼放到辦公用的奔騰4 3.6G上去跑了一下,結果慢成了渣。。。
我一直懷疑這幾種CPU除了L2大小有差異,前端匯流排的效能也有差距,但這方面沒有資料,無法佐證。
我們平時用的辦公軟體,程式程式碼的關聯性不高,資料關聯性就更弱,所以對L2的要求很低,遊戲方面,3D遊戲由於專門針對桌面電腦最佳化,對L2的要求也不高,所以才造成了你覺得至強沒優勢的假象,你真跑的大資料量的程式,就知道至強為啥要叫“至強”了。
對於某些商業場景的應用,至強就是要比I5,I7快,而且快不少。
作為一個當過DIY,工作後又寫過程式的人,來簡單說說我對至強處理器優勢的體會。
至強出現前,有個處理器叫Pentium Pro,這個其實就是至強的前身,問過電腦城的老闆,人家的解釋就是這玩意是伺服器用的,快取大,可靠性高。
但那個時候是賽揚266超頻400到大戰K6-2 300的時代,後來的賽揚300A更是把奔騰II都比的沒有價效比了,作為一個普通玩家,感覺快取那麼大有啥用呢?
好幾年後,工作中需要將SUN SPARC 處理器上的程式移植到x86平臺上,當時開發測試環境的處理器是UltraSPARC IV ,主頻只有1G多點,有16M L2 ;而選擇移植開發測試的x86伺服器配備5100的至強處理器,主頻2.66G,有4M L2。開發測試用機都是雙處理器。
當時這個程式主要是資料庫查表程式,資料量的大小大概有1G-3G那麼大,為了速度,資料庫引擎和表空間全部在記憶體中。一般的業務,完成一個回話,需要查表幾次到十幾次。
由於x86的CPU頻率大概是前者的一倍,我們開始期望移植後效能會自動有50%左右的提升,但實際情況是,重新編譯移植的程式,在主頻更高的至強上,處理能力只有原來的80%左右。
後來我們花了大概兩週時間才找到原因:較大的查詢資料量+程式程式碼前後呼叫的關聯性太強,至強的L2小,快取的資料少,執行中要經常去記憶體呼叫,而前者快取大,這個問題不突出。
這方面的最佳化搞起來非常麻煩,需要修改整個程式的結構,而且需要查詢的資料量放在那裡,資料方面基本沒法最佳化,我們最後只進行一些比較容易的最佳化,效能只有原來的1.2倍左右,為了提高效能,我們又花了幾周,將程式的處理架構改成了能在4路CPU上執行的,效能提高到原來2倍的樣子。
我後來懷著好奇,將這個程式碼放到辦公用的奔騰4 3.6G上去跑了一下,結果慢成了渣。。。
我一直懷疑這幾種CPU除了L2大小有差異,前端匯流排的效能也有差距,但這方面沒有資料,無法佐證。
我們平時用的辦公軟體,程式程式碼的關聯性不高,資料關聯性就更弱,所以對L2的要求很低,遊戲方面,3D遊戲由於專門針對桌面電腦最佳化,對L2的要求也不高,所以才造成了你覺得至強沒優勢的假象,你真跑的大資料量的程式,就知道至強為啥要叫“至強”了。