快科技4月21日消息,前微軟工程師、Windows原版任務管理器開發者Dave Plummer在網上揭秘:Windows任務管理器顯示的CPU占用率并非實時數據,而是定時刷新的周期平均值。
Plummer曾參與Windows ZIP文件支持和Windows NT開始菜單等標志性項目,他親自打造了初版任務管理器。
為確保工具不浪費系統資源,他從編程和工程角度將這款工具設計得極為簡潔,使其能在90年代的電腦上流暢運行。但正是這種極簡設計,埋下了數值不準的伏筆。
Plummer表示,任務管理器的刷新由計時器驅動,每隔一段時間抓取一次數據,它展示的是兩次刷新間隔內CPU的統計情況,并非真實時刻的負載。
如果單純用CPU占用時間除以刷新間隔,結果會非常依賴圖形用戶界面計時器的精度。
他打了個比方:這就像把節拍器放在皮卡車后斗里,在坑洼土路上行駛,想讓它保持絕對穩定基本不可能。
因此,他采用了更嚴謹的算法:讓任務管理器記錄每個進程自啟動以來的總運行時間(內核時間+用戶時間),用當前值減去上一次刷新時的總值,得到該進程在間隔期內的CPU消耗,再除以所有進程在該期間的總CPU耗時。
這套方法看起來十分復雜,但比直接做除法精準得多。
然而技術的演進讓這套算法顯得力不從心。現代CPU支持動態調頻、睿頻加速、溫控降頻和深度休眠,讓CPU時間占用與實際完成工作量脫鉤,單一百分比無法完整反映處理器工作狀態。
Plummer指出,過去的CPU使用時間能很好反映工作量,但現在兩者關聯已非常松散。他認為理想的CPU使用率應該衡量實際完成工作量與理論最大可完成工作量的比值,但自己已從微軟退休,無法推動改變。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.