1、示例代碼
2、運作控制台程式後,抓取3次Dump,最好每次間隔幾分鐘。
3、分别對每個Dump執行如下指令。
從上面的輸出可以看到,線程0的CPU時間不斷增加,CPU高占用很可能是由于線程0正在執行的代碼有問題造成的。
可以用!clrstack指令檢視一下目前的調用堆棧以及其上的局部變量和值。
當執行!clrstack時,報出了如下提示:
這不是我想要的,加載mscorwks失敗。後來經過調試發現,原來是第一步就.load時就錯了,因為我的那段代碼用的是vs2010。是以應該加載.net
frameword 4.0。
是以,最初應該執行的.load
C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/sos.dll
然後在執行!clrstack
第三個Dump
第二個Dump
第一個Dump:
不知道為什麼,我的第三個Dump并沒有出現HighCPU的提示,也許是我的電腦組態有點高吧。不過,出問題的代碼已可以看得到,就在Main方法裡。隻需要細細檢視Main方法找到問題所在就OK了。
學習自: