為何Windows Update佔用非常多的CPU資源?
Windows Update佔用非常多的CPU資源,即使在網路和磁碟操作並不密集的情況下CPU的佔用仍然非常高,在Windows 10下一個很明顯的特徵就是TiWork.exe消耗大量CPU。我的猜測是可能有以下幾點原因:
1、Windows Update進行了大量的加密、解密運算。2、Windows Update進行了大量中間代碼到二進位代碼的編譯工作3、對文件的完整性檢查消耗了大量CPU資源
不知道上面的猜測是否準確,如果是的話,這樣做的原因是什麼?
第三點的話,應該是下載回來之後進行的
如果你觀察過下載過程的話,你會留意到「下載」進度到95%的時候,網路佔用會降到接近0,然後CPU負載會佔一個核心(or一個邏輯線程),這裡應該是對下載回來的數據進行校驗。windows update下載大版本更新是esd,esd本身是加密的,要解密。普通的更新不知道是否有解密的操作。
然後其實我覺得吃一點cpu問題反倒不大,倒是用機械盤的用戶就會卡到崩潰……軟體帶動硬體消費。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
硬體廠商:「都來瞧一瞧看一看啊,6代多核心啊,還有固態硬碟。。。。。怎麼買不出去啊。微軟老鐵我硬體都賣不出去了啊,你幫我想想辦法」
微軟:「你別急等我出個新系統,到時候你的新硬體只支持我的新系統,豈不美滋滋。」
硬體廠商:「你上一代win7普及花了多少年啊,等你新系統普及,我黃花菜都涼了。」
微軟:「你別看我平時有點軟,自有辦法。」
微軟:「win10你們免費升級,我老鐵的固態硬碟和 cpu必須走一波。」
用戶:「win10確實美觀流暢,用了幾年的台式重新煥發生機,我愛上win10了。」
微軟:「好小子,天下沒有白吃的午餐,信不信我奶死你。」
用戶:「 windowsupdate 什麼鬼,怎麼這麼吃硬體,禁用了系統頻繁崩潰,開著電腦爆炸。媽!電腦好卡,我玩看視頻都卡,想換電腦了.」
一陣軟磨硬泡下。。。。。。
用戶媽媽:「行行行,但是換了新電腦後學習不能落下,看好那款告訴我多少錢就行了。」
用戶:「2w的這個,cpu性能很強,還有固態硬碟,肯定不會卡。」(傻傻地笑)
。。。。。。用了一個月以後
用戶:「用著快是快,為什麼lol延遲還是這麼高呢?卧槽,原來是 windowsupdate 佔用了90%的寬頻。爸,家裡的網好慢,我看學習視頻都卡。」
用戶爸爸:「要得,要得(我也覺得最近上草榴有點卡了)」
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
有意思吧,其實我有個疑問:是軟體促使硬體發展,還是硬體促使軟體的低效率化,到底是哪的起決定作用?
放心,creators update就沒有這種破事了,微軟弄了個UUP
一次更新六七百M,能解壓出成千上萬個小文件,以數字開頭的,合起來也就幾百M
有次我電腦崩潰,下載完的更新沒裝,於是我重啟等它安裝。然後兩三個小時過去了,我看到更新的補丁包被解壓出來,一遍又一遍。因為是小文件啊,我SSD啊,所以光看任務管理器,磁碟IO不高啊,CPU佔用倒是將近一個核心。這可能跟數據校驗有關吧。另外你點擊更新以後,並不是直接從網上拉下你需要的更新的下載地址開始下載,而是讀取自己電腦的SoftwareDistribution目錄下的資料庫,似乎是在準備列出所有已安裝更新等信息。這個步驟也還是沒有什麼網路/磁碟佔用的。
中間代碼到二進位便宜的話我覺得不會吧,又不是linux,人人裝了gcc工具鏈。或者你的意思是.net組件更新後進行優化?.net優化的話應該是.net自己的進程在工作,不應該是TiWorker的。我感覺最重要的是第二點。有時候感覺更新包並不大,卻也很吃CPU。因此第一點第三點都不太符合。無證據瞎猜,概不負責。我覺得這個應該是輪子哥@vczh 最清楚吧。
推薦閱讀:
TAG:MicrosoftWindows | WindowsUpdate故障 | Windows10 |