日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

windows下揪出java程序占用cpu很高的线程

發布時間:2023/12/1 windows 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows下揪出java程序占用cpu很高的线程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

? ? ? 天天搞java,這些監控也都知道,用過,但也沒往細里追究。因為也沒碰見這種問題,這次還是靜下來走一遍流程吧。與網上基本一致,不過我區分了下linux和windows的不一樣。我感覺基本是程序寫成死循環了或者大對象分配多了才有這種問題吧。

步驟

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??

轉載于:https://www.cnblogs.com/sddychj/p/9529503.html

總結

以上是生活随笔為你收集整理的windows下揪出java程序占用cpu很高的线程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。