對於處理器(CPU)二級緩衝(L2 Cache)的作用,想必大家都多多少少有一定瞭解,即使不完全明白其中道理,至少也可以從Pentium 4和Celeron的價差判斷出其重要性,256KB二級緩衝的Celeron D 2.4GHz比512KB二級緩衝的Pentium 4 2.4C便宜近一半。如果這時候有人說Windows XP作業系統並沒有充分利用CPU的二級緩衝,你會怎麼想?這簡直就是在浪費使用者的投資嘛!
事實上,有一種廣為流傳的說法是Windows XP沒有對CPU進行最佳化,理由就是它預設狀態下並沒有開啟CPU的二級緩衝。如果你開啟登錄編輯程式,找到“HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Session Manager\Memory Management”,在其中可以看到一個名為“SecondLevelDataCache”的項,它的預設值為“0”。再明顯不過了,“SecondLevelDataCache”就是二級資料緩衝的意思,既然被設定為“0”,那就是關閉了二級緩衝。
正是基於以上論斷,才出現了最佳化二級緩衝的技巧,也就是把“SecondLevelDataCache”的值設定為CPU的二級緩衝容量(單位KB)。在眾多的最佳化軟體中也包含了最佳化CPU二級緩衝的設定。
事實上,修改“SecondLevel DataCache”的值沒有任何最佳化作用,這是為什麼呢?
我們在微軟的知識庫中找到了如下的內容:“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management”中的SecondLevelDataCache鍵的值只有在Windows XP系統從硬體抽象層(Hardware Abstraction Layer )讀取CPU二級緩衝(L2)失敗時才會讀取SecondLevelDataCache鍵的資料。而且SecondLevelDataCache索引值=0的意義是二級緩衝為256KB。
在一篇知識庫文章中我們還找到了“Do not change the SecondLevelDataCache entry ”這樣的話,在文章中指出一些第三方資料宣稱修改SecondLevelDataCache鍵的值可以提高系統效能是不正確的。二級緩衝的數值是由作業系統檢測並且完全不受SecondLevelDataCache值的影響。
從微軟知識庫的文章中我們可以看到,所謂的Windows使用者需要使用者手動開啟二級緩衝這種說法是錯誤的。Windows系統是根據硬體抽象層讀取CPU的二級緩衝數值。只有在讀取失敗時才會讀取SecondLevelDataCache的值,而且SecondLevelDataCache的預設數值0所代表的意義就是二級緩衝為256KB,而不是表示關閉。所以CPU的二級緩衝在任何時候都是開啟的,使用者沒有必要再自行修改。
因此,無論是WindowsXP還是Vista都無需對此項進行最佳化,純粹是自欺欺人。