Windows更新使用的指數算法嚴重拖慢XP機器速度
Windows XP的用戶或許已經發現,今天的XP要比2001年發布的XP要慢。快慢與硬件無關,而是與操作系統的一個bug有關。Windows XP更新服務使用的一個更新依賴算法被發現會嚴重拖慢XP機器的速度。
按照設計,Windows更新服務從微軟的更新服務器檢索補丁信息,補丁信息包含有每個補丁的信息:應用于哪個軟件,以及歷史補丁或當前已被取代的補丁。Windows補丁是漸增的。如果全新安裝Windows XP,你不需要逐個安裝IE 6發布的所有補丁,而只需要安裝最新補丁,因為最新補丁包含了過去的所有修正。
然而,不幸的是,XP的更新服務客戶端組件使用了一個指數擴張的算法處理歷史補丁記錄。如果系統的同一個程序安裝了許多次補丁,每一個被取代的補丁會導致執行算法的處理時間翻倍。XP已經有13年歷史,歷史補丁的記錄非常長,程序可能有40個以上的歷史補丁。處理更新的svchost.exe進程在啟動后占用了全部CPU資源,需要花一個小時以上的時間才能完成整個過程,之后系統才會正常工作。
微軟11月例行更新據說修復了這個問題,結果沒有;12月例行更新號稱也修復了該問題,結果仍然沒有。明年4月,XP將會停止支持,屆時微軟能不能推出修復程序已經無關緊要,用戶只要關閉更新服務,系統就能正常工作了。