java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析
1、場(chǎng)景
通常,使用eclipse的mat圖形化工具打開dump的時(shí)候都會(huì)內(nèi)存溢出.
對(duì)于比較小的dump,eclipse可以打開,但一旦dump文件太大,eclipse就有點(diǎn)束手無(wú)策。
這時(shí)候怎么辦呢?可以使用linux下的mat,既Memory Analyzer Tools
2、dump生成
dump可以是內(nèi)存溢出時(shí)讓其自動(dòng)生成,或者手工直接導(dǎo)。配置jvm參數(shù)-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/biapp/m.hprof
手工直接導(dǎo),PID為進(jìn)程號(hào)
jmap -dump:live,format=b,file=m.hprof PID
3、準(zhǔn)備工作,下載LINUX的MAT
在linux服務(wù)器執(zhí)行命令 uname –m查看版本
下載對(duì)應(yīng)的版本
下載后將包傳到linux服務(wù)器上解壓。
MemoryAnalyzer.ini 配置文件可以修改最大的內(nèi)存,默認(rèn)1G基本夠用了。
4、在linux執(zhí)行分析命令
執(zhí)行命令
./ParseHeapDump.sh m.hprof ?org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components。
m.hprof就是jvm的dump文件,在mat目錄下會(huì)生成3份.zip結(jié)尾的報(bào)告和一些m.相關(guān)的文件,將生成的m.hprof相關(guān)的文件都下載到windows本地磁盤。
如:
5、打開分析報(bào)告
1)使用瀏覽器
解壓縮以.zip結(jié)尾的文件,解壓后
使用瀏覽器打開index.html文件內(nèi)容,查看分析報(bào)告
查看Class Histogram一項(xiàng)
發(fā)現(xiàn)其中一個(gè)類對(duì)象占用了7個(gè)G,這里的Heap單位都是Byte,自行換算。
Shallow Heap 既對(duì)象本身的大小
Retained Heap 對(duì)象自身加起直接或間接引用的大小
2)使用eclipse的mat工具
Eclipse需要按照mat工具,安裝步驟可以百度,或者參考
如果直接打開dump文件還是會(huì)內(nèi)存溢出,所以可以使用eclipse打開分析報(bào)告即可。
使用eclipse-File-Open File打開dump文件,如下:
會(huì)提示錯(cuò)誤,點(diǎn)擊OK忽略錯(cuò)誤,然后選擇第三項(xiàng),重新打開之前的運(yùn)行報(bào)告
點(diǎn)擊Next,出現(xiàn)如下界面
選擇其中的一份報(bào)告打開,如m_System_Overview.zip
得到相同的結(jié)果
總結(jié)
以上是生活随笔為你收集整理的java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 几款好用的下载工具都在这了比较好的下载工
- 下一篇: java编译提示错误信息_JAVA编译错