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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jmap 文件解析_使用jmap dump出来的java堆镜像文件,可以用什么打开做详细分析

發布時間:2025/3/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jmap 文件解析_使用jmap dump出来的java堆镜像文件,可以用什么打开做详细分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

匿名用戶

1級

2018-11-15 回答

其中jmap是java自帶的工具

查看整個JVM內存狀態

jmap -heap [pid]

要注意的是在使用CMS GC 情況下,jmap -heap的執行有可能會導致JAVA 進程掛起

查看JVM堆中對象詳細占用情況

jmap -histo [pid]

導出整個JVM 中內存信息

jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自帶的一個用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中對象的內存占用情況

jhat -J-Xmx1024M [file]

執行后等待console 中輸入start HTTP server on port 7000 即可使用瀏覽器訪問 IP:7000

eclipse Memory Analyzer

Eclipse 提供的一個用于分析JVM 堆Dump文件的插件。借助這個插件可查看對象的內存占用狀況,引用關系,分析內存泄露等。

http://www.eclipse.org/mat/

kill -3 [pid]

在Linux 上找到Java所在的進程號,然后執行以上命令,線程的相關信息就輸出到console

jstack

jstack 是sun JDK 自帶的工具,通過該工具可以看到JVM 中線程的運行狀況,包括鎖等待,線程是否在運行

執行 jstack [pid] ,線程的所有堆棧信息

"http-8080-10" daemon prio=10 tid=x0a949bb60 nid=0x884 waiting for monitor entry [...]

"http-8080-10" 這個線程處于等待狀態。 waiting for monitor entry 如果在連續幾次輸出線程堆棧信息都存在于同一個或多個線程上時,則說明系統中有鎖競爭激烈,死鎖,或鎖餓死的想象。

“http-8080-11” daemon prio=10 tix=xxx nid=xxx in object.wait() [...]

java.lang.Thread.State:waiting (on object monitor)

該表示http-8080-11的線程處于對象的Wait 上,等待其他線程的喚醒,這也是線程池的常見用法。

“Low Memory Detector”daemon prio=10 tix=xx nid=xxx runnable [...] java.lang.Thread.State:runnable

表示“Low Memory Detector” 的線程處于Runable狀態,等待獲取CPU的使用權.

參考:http://zhumeng8337797.blog.163.com/blog/static/100768914201242410583187/

jvisualvm

一.Java VisualVM 概述

對于使用命令行遠程監控jvm 太麻煩 。 在jdk1.6 中 Oracle 提供了一個新的可視化的。 JVM 監控工具 Java VisualVM 。jvisualvm.exe 在JDK 的 bin 目錄下。

雙擊啟動 Java VisualVM 后可以看到窗口左側 “應用程序 ”欄中有“ 本地 ”、“遠程 ” 、“快照 ”三個項目。

“本地 ”下顯示的是在 localhost 運行的 Java 程序的資源占用情況,如果本地有 Java 程序在運行的話啟動 Java VisualVM 即可看到相應的程序名,點擊程序名打開相應的資源監控菜單,以圖形的形式列出程序所占用的 CPU 、 Heap 、 PermGen 、類、線程的 統計信息。

“遠程” 項下列出的遠程主機上的 Java 程序的資源占用情況,但需要在遠程主機上運行 jstatd 守護程序

VisualVM分為 3 類, 本地 它會自動偵測到,并顯示出來

雙擊Local 下的任一節點,看到右邊的變化 ,你可以監控 CPU ,內存,類,線程等運行狀況,實時監控服務器性能。

右鍵 VisualVM我們可以看到 Thread Dump, Heap Dump

做 Thread Dump 很快,馬上就可以看到結果

Heap Dump要稍花費一些時間(可以看到當前 heap 里對象的數量及占用的比例,做 OOM 很好用)

對其功能不再做描述,可以查閱網上相關質量,我們主要講的是如何使用 VisualVM 遠程監控。

總結

以上是生活随笔為你收集整理的jmap 文件解析_使用jmap dump出来的java堆镜像文件,可以用什么打开做详细分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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