時間:2017-07-16 來源:互聯網 瀏覽量:
很多人將Windows 10係統稱為“Bug10”,雖然太言過其實,但不可否認的是,Windows 10確實經常會出現一些很詭異的Bug。
來看看Google程序員Bruce Dawson的遭遇。
公司為他配備了一套Intel 24核心48線程處理器、64GB內存、高檔SSD組成的強大係統,按理說用來編程會快速閃電,但奇怪的是,在啟動編譯後,Windows 10係統卻卡得像一隻蝸牛,鼠標幾乎都動不了了。
調出係統管理器查看,卻發現無論CPU還是內存都並沒有占滿,隻有大約50%。
Bruce Dawson輕車熟路地啟動Windows係統事件追蹤工具ETW,結果發現Windows 10在進程銷毀方麵存在一個嚴重的Bug。
簡單來說,當一個Windows係統/程序進程需要關閉的時候,會通過單獨一個線程進行處理,也就是說即便你有幾十個處理器核心/線程,Windows係統也完全支持它們,但這時候Windows其實是單線程運行的。
一般情況下這也沒什麼,但對於程序員來說,頻繁啟動、關閉大量進程是很常見的,於是悲劇就發生了,而且更糟糕的是,CPU核心數越多,問題反而越嚴重。
Bruce Dawson麵臨的就是,1個線程在拚命忙碌,其他47個都在圍觀……
進一步研究發現,這個Bug隻在Windows 10上存在,老版本的諸如Windows 7反而沒問題。
Bruce Dawson還寫了一篇詳細的分析文章,感興趣的可以戳這裏。