二級緩衝偽最佳化揭秘)

來源:互聯網
上載者:User
對於處理器(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都無需對此項進行最佳化,純粹是自欺欺人。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.