windows下揪出java程式佔用cpu很高的線程

來源:互聯網
上載者:User

標籤:com   運行   進位   計算   cpu   reads   man   ble   his   

1.找到java進程對應的pid。通過工作管理員。linux---top

2.然後把java進程匯出快照。直接運行命令。stack -l 31372 > c:/31372.stack  

3.在windows下只能查看進程的cpu佔用率,要查看線程的cpu佔用率要藉助其他的工具,我這裡用的是微軟提供的 Process Explorer v15.3

                                                                                                    右鍵點擊需要查看的進程---properties 

linux下先輸入top,然後再按shift+h 或“H”,此時開啟的是線程視圖,pid為線程號

4.然後選擇 Threads 選項卡,找到佔用cpu的線程的tid,比如我這裡是 31876 的線程

5.把pid轉換成16進位,我這裡直接用系統內建的計算機轉換,置於為什麼要轉換,是因為先前用jstack匯出的資訊裡麵線程對應的tid是16進位的。

cmd---calc---計算機左上方選擇程式員,可進位轉換 。最後得到的線程pid的16進位的值為 7C84 

6.在 c盤的31372.stack檔案中尋找 7C84

Thread-23" prio=6 tid=0x03072400 nid=0x1b68 runnable [0x0372f000]  

   java.lang.Thread.State: RUNNABLE  

   at com.horn.util.MyEncrypt.encode(MyEncrypt.java:17)  

 at com.horn.common.OrderUtil.hisExp(OrderUtil.java:228)  

 at com.horn.util.MsgManage.receiveMsg(MsgManage.java:961)  

   at com.horn.util.PollMessageThread.run(PollMessageThread.java:74)  

   Locked ownable synchronizers:      - None  

windows下揪出java程式佔用cpu很高的線程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.