更新時間:2021-10-28 11:13:22 來源:動力節點 瀏覽1407次
jstack用于打印出給定的java進程ID或core file或遠程調試服務的java堆棧信息.
jstack pid:如果java程序崩潰生成core文件,jstack工具可以用來獲得core文件的java stack和native stack的信息,從而可以輕松地知道java程序是如何崩潰和在程序何處發生問題。另外,jstack工具還可以附屬到正在運行的java程序中,看到當時運行的java程序和java stack和native stack的信息。
jstack[option] pid
jstack[option] executable core
jstack[option] [server-id@]remote-hostname-or-IP
1)、options:
executable Java executable from which the core dump was produced.
(可能是產生core dump的java可執行程序)
core 將被打印信息的core dump文件
remote-hostname-or-IP 遠程debug服務的主機名或ip
server-id 唯一id,假如一臺主機上多個遠程debug服務
2)、基本參數
-F當’jstack [-l] pid’沒有相應的時候強制打印棧信息
-l長列表. 打印關于鎖的附加信息,例如屬于java.util.concurrent的ownable synchronizers列表.
-m打印java和native c/c++框架的所有棧信息.
-h | -help打印幫助信息
pid 需要被打印配置信息的java進程id,可以用jps查詢.
打印出某個java進程內存的,所有“對象”的情況。
也可以輸出所有內存中對象的工具,甚至可以將VM中的Heap,以二進制輸出成文本。使用方法 jmap -histo pid。如果連用shell jmap -histo pid > a.log可以將其保存到文本中去,然后在使用文本對比工具,可以對比GC回收了那些對象。jmap -dump :format = b,file = outfile 3024可以將3024進程的內存heap輸出來到outfile文件里,在配合MAT.
SYNOPSIS
jmap [ option ] pid
jmap [ option ] executable core
jmap [ option ] [server-id@]remote-hostname-or-IP
-dump:[live,]format=b,file=<filename> 使用hprof二進制形式,輸出jvm的heap內容到文件=. live子選項是可選的,假如指定live選項,那么只輸出活的對象到文件.
-finalizerinfo 打印正等候回收的對象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情況.
-histo[:live] 打印每個class的實例數目,內存占用,類全名信息. VM的內部類名字開頭會加上前綴”*”. 如果live子參數加上后,只統計活的對象數量.
-permstat 打印classload和jvm heap長久層的信息. 包含每個classloader的名字,活潑性,地址,父classloader和加載的class數量. 另外,內部String的數量和占用內存數也會打印出來.
-F 強迫.在pid沒有相應的時候使用-dump或者-histo參數. 在這個模式下,live子參數無效.
-h | -help 打印輔助信息
-J 傳遞參數給jmap啟動的jvm.
pid 需要被打印配相信息的java進程id,創業與打工的區別 - 博文預覽,可以用jps查問.
是用來分析java堆的命令,可以將堆中的對象以html的形式顯示出來,包括對象的數量,大小等。
第一步:導出堆
第二步:分析堆文件
第三步:查看html
(1)顯示出堆中所包含的所有類
(2)從根集到引用到的對象
(3)顯示平臺包括的所有類的實例對象
(4)堆實例的分布表
通過上述相信大家對Java性能測試工具已經有了一定的了解,大家若想了解更多相關知識,可以關注一下動力節點的Java開發工具頁面,里面有更多的工具知識可以供大家學習參考,希望對大家能夠有所幫。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習