2012-02-24 43 views
1

有誰知道如何完成以下任務。如何在耗費大量CPU的同時打印線程的執行堆棧?

應用程序有時會吃很多CPU,ProcessExplorer(procexp.exe)顯示週期性的高內核CPU負載(〜60-80)。我在procexp中看到一些線程會執行一些耗費大量內核時間的操作。在那一刻,我想打印這些繁忙線程的執行堆棧。

是否有任何可以顯示該類信息或某些WinDbg腳本等的監視工具?

+0

我剛剛發佈了答案,假設這是關於java進程。是的,如果沒有,我會刪除它。 – 2012-02-24 10:55:11

+0

不,它是windows上的.net/native進程。對不起,我以前沒有提過它。 – 2012-02-24 17:02:23

回答

2

我建議使用ProcDump

的命令等:

procdump -C 60 -s 3 -ma -n 5 -x Your.exe your.dmp

這將需要一個完整的存儲器轉儲當處理超過60%的CPU利用率連續3秒,並且達到5次。通過這種方式,您可以比較不同的轉儲並查看進程花費的時間。