精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java程序內(nèi)存分析:使用mat工具分析內(nèi)存占用

開發(fā) 后端
在工作中可能會遇到內(nèi)存溢出這種災(zāi)難性的問題,那么程序肯定是存在問題,找出問題至關(guān)重要,上一篇文章講了jmap命令的使用方法,當(dāng)然用jmap導(dǎo)出的文件我們也看不懂啊,那就交給memory analyzer(mat)這個(gè)工具,讓他幫助我們來觀察程序的內(nèi)存分布情況吧。

MAT 不是一個(gè)***工具,它并不能處理所有類型的堆存儲文件。但是比較主流的廠家和格式,例如 Sun, HP, SAP 所采用的 HPROF 二進(jìn)制堆存儲文件,以及 IBM 的 PHD 堆存儲文件等都能被很好的解析。下面來看看要怎么做呢,也許對你有用。官方文檔:http://help.eclipse.org/luna/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html

造成OutOfMemoryError原因一般有2種:

1、內(nèi)存泄露,對象已經(jīng)死了,無法通過垃圾收集器進(jìn)行自動(dòng)回收,通過找出泄露的代碼位置和原因,才好確定解決方案;

2、內(nèi)存溢出,內(nèi)存中的對象都還必須存活著,這說明Java堆分配空間不足,檢查堆設(shè)置大小(-Xmx與-Xms),檢查代碼是否存在對象生命周期太長、持有狀態(tài)時(shí)間過長的情況。

1. 用jmap生成堆信息
 

    這樣在E盤的jmap文件夾里會有一個(gè)map.bin的堆信息文件 

2. 將堆信息導(dǎo)入到mat中分析   

3. 生成分析報(bào)告

mat可以為我們生成多個(gè)報(bào)告:

下面來看看生成的這些數(shù)據(jù)對我們有什么幫助

從上圖可以看到它的大部分功能,在餅圖上,你會發(fā)現(xiàn)轉(zhuǎn)儲的大小和數(shù)量的類,對象和類加載器。

正確的下面,餅圖給出了一個(gè)印象***的對象轉(zhuǎn)儲。移動(dòng)你的鼠標(biāo)一片看到對象中的對象的細(xì)節(jié)檢查在左邊。下面的Action標(biāo)簽中:

  • Histogram可以列出內(nèi)存中的對象,對象的個(gè)數(shù)以及大小。

  • Dominator Tree可以列出那個(gè)線程,以及線程下面的那些對象占用的空間。

  • Top consumers通過圖形列出***的object。

  • Leak Suspects通過MA自動(dòng)分析泄漏的原因。

Histogram

  • Class Name : 類名稱,java類名

  • Objects : 類的對象的數(shù)量,這個(gè)對象被創(chuàng)建了多少個(gè)

  • Shallow Heap :一個(gè)對象內(nèi)存的消耗大小,不包含對其他對象的引用

  • Retained Heap :是shallow Heap的總和,也就是該對象被GC之后所能回收到內(nèi)存的總和


一般來說,Shallow Heap堆中的對象是它的大小和保留內(nèi)存大小相同的對象是堆內(nèi)存的數(shù)量時(shí),將釋放對象被垃圾收集。
保留設(shè)置一組主要的對象,例如一個(gè)特定類的所有對象,或所有對象的一個(gè)特定的類裝入器裝入的類或者只是一群任意對象,是釋放的組對象如果所有對象的主要設(shè)置變得難以接近的。保留設(shè)置包括這些對象以及所有其他對象只能通過這些對象。保留大小是總堆大小中包含的所有對象的保留。摘自eclipse


關(guān)于的詳細(xì)講解,建議大家查看Shallow heap & Retained heap,這是個(gè)很重要的概念。

這兒借助工具提供的regex正則搜索一下我們自己的類,排序后看看哪些相對是占用比較大的。

左邊可以看到類的詳細(xì)使用,比如所屬包,父類是誰,所屬的類加載器,內(nèi)存地址,占用大小和回收情況等

#p#

這兒有個(gè)工具可以根據(jù)自己的需求分組查找,默認(rèn)根據(jù)class分組,類似我們sql里的group by了~~

這里可以看到上面3個(gè)選項(xiàng),分別生成overview、leak suspects、top components數(shù)據(jù),但是這兒生成的不是圖表,如果要看圖表在(Overview)中的Action標(biāo)簽里點(diǎn)擊查看。

這個(gè)是Overview中的 Heap Dump Overview視圖,從工具欄中點(diǎn)開,這是一個(gè)全局的內(nèi)存占用信息

Used heap dump 79.7 MB
Number of objects 1,535,626
Number of classes 8,459
Number of class loaders 74
Number of GC roots 2,722
Format hprof
JVM version
 
Time 格林尼治標(biāo)準(zhǔn)時(shí)間+0800上午9時(shí)20分37秒
Date 2014-7-2
Identifier size 32-bit
File path E:\jmap\map.bin
File length 108,102,005
  • Total: 12 entries


 

然后可以點(diǎn)開SystemProperties和Thread Overview進(jìn)行查看,我這里就不貼了內(nèi)容比較多。
 

Dominator Tree

我們可以看到ibatis占了較多內(nèi)存

Top consumers

這張圖展示的是占用內(nèi)存比較多的對象的分布,下面是具體的一些類和占用。

按等級分布的類使用情況,其實(shí)也就是按使用次數(shù)查看,java.lang.Class被排在***

還有一張圖是我們比較關(guān)心的,那就是按包名看占用,根據(jù)包我們知道哪些公共用的到j(luò)ar或自己的包占用
 

這樣就可以看到包和包中哪些類的占用比較高。
 

#p#

Leak Suspects

從這份報(bào)告,看到該圖深色區(qū)域被懷疑有內(nèi)存泄漏,可以發(fā)現(xiàn)整個(gè)heap只有79.7M內(nèi)存,深色區(qū)域就占了62%。所以,MAT通過簡單的報(bào)告就說明了項(xiàng)目是有可疑代碼的,具體點(diǎn)開詳情來找到類

點(diǎn)擊鼠標(biāo),在List Objects-> with outgoing references下可以查看該類都引用了什么對象,由此查看是否因?yàn)槠渌麑ο髮?dǎo)致的內(nèi)存問題。

下面繼續(xù)查看pool的gc ROOT

如下圖所示的上下文菜單中選擇 Path To GC Roots -> exclude weak references, 過濾掉弱引用,因?yàn)樵谶@里弱引用不是引起問題的關(guān)鍵。

進(jìn)入查看即可,我這兒的代碼沒有問題,就不用貼了。
 


The classloader/component "org.apache.catalina.loader.WebappClassLoader @ 0xa34cde8" occupies 19,052,864 (22.80%) bytes. The memory is accumulated in one instance of "java.util.HashMap$Entry[]" loaded by "<system class loader>".

Keywords
java.util.HashMap$Entry[]
org.apache.catalina.loader.WebappClassLoader @ 0xa34cde8


這段話是在工具中提示的,他告訴我們WebappClassLoader占了19,052,864 字節(jié)的容量,這是tomcat的類加載器,JDK自帶的系統(tǒng)類加載器中占用比較多的是HashMap。這個(gè)其實(shí)比較正常,大家經(jīng)常用map作為存儲容器。

除了在上一頁看到的描述外,還有Shortest Paths To the Accumulation Point和Accumulated Objects部分,這里說明了從GC root到聚集點(diǎn)的最短路徑,以及完整的reference chain。觀察Accumulated Objects部分,java.util.HashMap的retained heap(size)***,所以明顯類實(shí)例都聚集在HashMap中了。

來看看Accumulated Objects by Class區(qū)域,這里能找到被聚集的對象實(shí)例的類名。java.util.HashMap類上頭條了,被實(shí)例化了5573次,從這兒看出這個(gè)程序不存在什么問題,因?yàn)檫@個(gè)數(shù)字是比較正常的,但是當(dāng)出問題的時(shí)候我們都會看到比較大的自定義類會在前面,而且占用是相當(dāng)高。

當(dāng)然,mat這個(gè)工具還有很多的用法,這里把我了解的分享給大家,不管如何,最終我們需要得出系統(tǒng)的內(nèi)存占用,然后對其進(jìn)行代碼或架構(gòu),服務(wù)器的優(yōu)化措施!

參考文獻(xiàn):

http://www.eclipse.org/mat/about/screenshots.php

http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/

本文出自:http://my.oschina.net/biezhi/blog/286223

責(zé)任編輯:林師授 來源: oschina
相關(guān)推薦

2015-08-21 09:56:17

Java內(nèi)存分析MAT使用

2013-07-23 06:56:12

Android內(nèi)存機(jī)制APP內(nèi)存使用情況Android開發(fā)學(xué)習(xí)

2009-05-12 10:27:53

Java開發(fā)內(nèi)存分析

2015-08-06 14:54:50

JavaScript分析工具OneHeap

2013-08-02 09:52:14

AndroidApp內(nèi)存泄漏

2023-02-10 09:28:23

優(yōu)化工具

2023-05-29 07:17:48

內(nèi)存溢出場景

2021-11-04 11:54:30

Linux內(nèi)存系統(tǒng)

2018-04-17 14:41:41

Java堆內(nèi)存溢出

2013-08-02 10:06:36

Android內(nèi)存溢出

2021-04-23 20:59:02

ThreadLocal內(nèi)存

2017-11-09 16:07:00

Web應(yīng)用內(nèi)存

2020-02-09 17:23:17

Python數(shù)據(jù)字典

2013-11-26 16:05:24

Linux共享內(nèi)存

2012-06-05 00:41:07

JavaJava內(nèi)存

2015-11-16 11:22:05

Java對象內(nèi)存分配

2020-12-07 06:23:48

Java內(nèi)存

2011-08-16 09:34:34

Nginx

2018-07-03 09:00:00

Redis內(nèi)存分析工具

2011-11-22 09:57:24

Node.js
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产午夜精品一区理论片飘花| 午夜不卡av免费| 91久久精品国产91久久性色| 精品国产欧美日韩不卡在线观看| 亚洲不卡在线| 色天天综合久久久久综合片| 亚洲人成影视在线观看| 亚洲黄色在线免费观看| 丝袜美腿一区二区三区| 欧美猛男性生活免费| 在线 丝袜 欧美 日韩 制服| 99热这里有精品| 婷婷综合五月天| 亚洲自拍偷拍一区二区三区| 日韩专区一区二区| 国内精品久久久久影院薰衣草| 国语自产精品视频在线看一大j8 | 中文字幕永久在线观看| 欧美精品aa| 一区二区三区视频观看| 人妻av一区二区| 亚洲国产91视频| 日韩欧美在线视频观看| 青草网在线观看| а天堂8中文最新版在线官网| 国产不卡视频在线观看| 国产精品久久久久免费a∨大胸| 国产亚洲精品久久777777| 国产一区二区三区不卡视频网站| 精品乱人伦小说| 午夜视频在线网站| 色成人免费网站| 欧美日韩激情视频| 久久综合久久网| 菠萝菠萝蜜在线观看| 国产精品午夜免费| 视频三区二区一区| 免费黄网站在线观看| 99久久综合国产精品| 高清视频在线观看一区| 国产激情久久久久久熟女老人av| 日韩av在线播放中文字幕| 456国产精品| 亚洲欧美在线视频免费| 国产精品国码视频| 欧美成人h版在线观看| 99久久久无码国产精品不卡| 欧美手机视频| 国产午夜精品免费一区二区三区 | 中文字幕欧美区| 欧美日韩精品一区| 欧美日韩国产中文字幕在线| 白白色亚洲国产精品| 99国产超薄肉色丝袜交足的后果| 国产精品色综合| 久久99精品久久久久久久久久久久| 国产福利成人在线| 青娱乐在线免费视频| 首页综合国产亚洲丝袜| 茄子视频成人在线| 日本久久综合网| 日韩高清在线电影| 国产美女久久精品香蕉69| 一区二区视频免费观看| 久久精品久久精品| 成人a级免费视频| 国产精品嫩草影院精东| 激情综合色综合久久| 91在线视频成人| 亚洲精品97久久中文字幕| 成人免费精品视频| 欧美日韩系列| 亚洲免费视频一区二区三区| 亚洲欧美在线aaa| 国产肉体ⅹxxx137大胆| 男人的天堂免费在线视频| 一本色道久久综合狠狠躁的推荐 | 91亚洲精品久久久蜜桃网站| 明星裸体视频一区二区| 992tv免费直播在线观看| 亚洲欧美综合色| 国产免费黄色小视频| 69久成人做爰电影| 欧美日本一区二区在线观看| 男生和女生一起差差差视频| 欧美网色网址| 中文字幕日本欧美| 久久久香蕉视频| 亚洲专区欧美专区| 91精品在线观看视频| 日韩在线观看视频网站| 国产嫩草影院久久久久| 4444亚洲人成无码网在线观看| 免费看男女www网站入口在线| 欧美性猛交xxxxxxxx| 古装做爰无遮挡三级聊斋艳谭| 久久精品色播| 精品国偷自产在线| 亚洲日本韩国在线| 精品亚洲国内自在自线福利| 国内精品久久国产| 精品国产99久久久久久| 欧美视频不卡中文| 超碰91在线播放| 国内精品视频在线观看 | 亚洲日本japanese丝袜| 久草在线资源福利站| 欧美日韩一级片在线观看| 无码人妻一区二区三区精品视频| 欧美精品系列| 1769国产精品| 精品人妻午夜一区二区三区四区| 久久久久国产成人精品亚洲午夜| 在线观看欧美亚洲| 黑人巨大精品| 亚洲第一天堂无码专区| 激情五月激情综合| 日韩黄色免费网站| 精品免费国产| 牛牛精品在线| 7777精品伊人久久久大香线蕉经典版下载| 菠萝菠萝蜜网站| 国产精品mv在线观看| 成人福利在线视频| 国产二区在线播放| 五月天一区二区| 亚欧精品在线视频| 国产精品97| 国产精品久久综合av爱欲tv| 视频午夜在线| 精品国产乱码久久久久久婷婷| 巨乳女教师的诱惑| 香蕉久久网站| 91美女高潮出水| 国产www.大片在线| 91久久精品网| 免费污网站在线观看| 一本久道久久综合狠狠爱| 99re6热在线精品视频播放速度| 视频一区二区三区不卡| 色八戒一区二区三区| 人人妻人人澡人人爽人人精品| 亚洲人成久久| 国产精品swag| hd国产人妖ts另类视频| 亚洲成人黄色网| 久久精品久久精品久久| 国产91精品免费| 国产黄色激情视频| 丁香综合av| 91精品国产91久久久久久吃药| 欧美一级免费片| 亚洲国产日日夜夜| 色天使在线视频| 久久免费黄色| 亚洲视频欧美在线| 男人天堂久久| 久久国产精品视频| www.激情五月| 婷婷夜色潮精品综合在线| 国产精品久久久久久亚洲色| 在线一区免费观看| 日韩av电影免费在线| 成人四虎影院| 不卡伊人av在线播放| 亚洲毛片欧洲毛片国产一品色| 亚洲电影在线免费观看| 精品少妇一区二区三区免费观 | 亚洲综合色在线观看| 欧美大人香蕉在线| 91精品国产一区二区三区动漫 | 人妻无码中文久久久久专区| 亚洲视频大全| 亚洲欧洲在线一区| 网站一区二区| 欧美在线观看日本一区| 福利视频在线看| 日韩美女主播在线视频一区二区三区| 一区二区三区免费高清视频| 97久久精品人人澡人人爽| 欧美性猛交xxx乱久交| 亚洲国产精品日韩专区av有中文| 国产99在线免费| 色香欲www7777综合网| 久久亚洲精品一区二区| 天天射天天操天天干| 欧美日韩在线直播| av资源吧首页| 国产精品乱码人人做人人爱 | 日韩精品一卡| 国产精品一区二区a| 成人激情综合| 欧美精品videos| 国产最新视频在线观看| 欧美一级理论片| 中文字幕在线播| 一区二区免费看| 国产黄色大片免费看| 国产99久久久国产精品潘金网站| 一本久道中文无码字幕av| 欧美一区在线看| 日韩高清专区| 蜜桃久久久久| 91久久综合亚洲鲁鲁五月天| 粉嫩一区二区| 午夜精品一区二区三区在线视频| 3p在线观看| 亚洲欧美日韩国产精品| 午夜精品小视频| 欧美色国产精品| 日韩成人免费观看| 亚洲女厕所小便bbb| 女女互磨互喷水高潮les呻吟| 国产成人综合精品三级| 国产精品视频分类| 国产精品一级| 久操网在线观看| 欧美日本不卡| 亚洲一区不卡在线| 国产影视精品一区二区三区| 国产欧美日韩亚洲| 试看120秒一区二区三区| 国产精品视频区1| 欧美二三四区| 日本中文字幕久久看| jizz一区二区三区| 欧美猛少妇色xxxxx| 国产黄大片在线观看画质优化| 国产亚洲欧美一区| 欧美视频综合| 日韩精品高清在线| 亚洲欧美日韩动漫| 亚洲级视频在线观看免费1级| 亚洲伦理在线观看| 精品福利一区二区三区免费视频| 成人av无码一区二区三区| 91.com视频| 91女人18毛片水多国产| 欧美精三区欧美精三区| 一级黄色片在线| 欧美日韩电影在线播放| 在线黄色av网站| 欧美日韩激情在线| 97超碰中文字幕| 欧美日本一区二区三区| 国产乱淫a∨片免费观看| 欧美日韩aaa| 99热这里只有精品1| 91麻豆精品国产91| 亚洲av色香蕉一区二区三区| 日韩精品一区二区三区在线播放| 99久久久国产精品无码免费| 日韩欧美www| 五月激情婷婷网| 亚洲视频在线视频| 在线观看免费黄视频| 久久天天躁狠狠躁夜夜爽蜜月| 精品自拍一区| 久久久久久一区二区三区 | 韩日成人av| 国产一级爱c视频| 翔田千里一区二区| 婷婷激情四射五月天| 久久99国产精品尤物| 中文字幕在线观看视频www| 高清在线观看日韩| 亚洲av无码国产精品久久| 欧美激情一区二区在线| 懂色av蜜臀av粉嫩av永久| 亚洲精品乱码久久久久久日本蜜臀| 少妇久久久久久被弄高潮| 亚洲成人综合在线| 国产亚洲欧美日韩高清| 91精品国产综合久久精品app| a在线观看视频| 亚洲精品电影网在线观看| 黄色免费在线播放| 久久视频在线视频| 91在线超碰| 国产精品欧美日韩一区二区| 99国内精品久久久久| 国产激情一区二区三区在线观看| 国产乱码精品一区二区亚洲| a级网站在线观看| 亚洲久久一区| 亚洲妇熟xx妇色黄蜜桃| av男人天堂一区| 成人午夜免费影院| 午夜久久久久久| 在线观看视频中文字幕| 亚洲国产黄色片| 理论片午午伦夜理片在线播放| 97在线免费视频| 亚洲精品毛片| 精品国产一区二区三区四区精华 | 国产裸体免费无遮挡| 狠狠色综合播放一区二区| 在线免费观看日韩av| 亚洲另类色综合网站| www.久久视频| 亚洲成人精品在线| 欧美成人精品一区二区男人看| 97免费视频在线| 国产不卡精品| 亚洲激情电影在线| 在线综合视频| 99久久综合网| 国产精品久久久一区麻豆最新章节| 日韩 国产 在线| 欧美精品一级二级三级| 免费在线视频一级不卡| 欧美人交a欧美精品| 久久亚洲精品中文字幕| 牛人盗摄一区二区三区视频| 激情综合中文娱乐网| 999热精品视频| 国产精品免费看片| 亚洲不卡在线视频| 日韩av在线一区| 青春草视频在线| 亚洲曰本av电影| 欧美成人直播| 在线免费观看视频黄| 久久精品一区蜜桃臀影院| 亚洲综合一二三| 精品久久久久久久久久久久久久久久久| 超碰免费在线| 国产精品av在线| 国产成人调教视频在线观看| 男人操女人逼免费视频| 成人avav影音| 国产在线拍揄自揄拍| 日韩欧美中文一区二区| 调教一区二区| 亚洲精品日韩激情在线电影| 久久久国产精品| 国产精品嫩草影院8vv8 | 久久精品视频6| 日韩精品在线网站| 午夜av在线免费观看| 亚洲aa在线观看| 亚洲天天影视网| 日韩av影视大全| 亚洲乱码一区二区三区在线观看| 国产手机av在线| 久久99视频精品| 北条麻妃在线一区二区免费播放 | 欧美精品一区二区高清在线观看| 最新黄网在线观看| 99re在线视频观看| 91久久综合| 公侵犯人妻一区二区三区| 在线观看国产精品网站| 91官网在线| 91精品综合久久| 国内在线观看一区二区三区| 欧美肉大捧一进一出免费视频| 婷婷夜色潮精品综合在线| 精彩国产在线| 成人福利在线视频| 欧美日本国产| 国产激情第一页| 日本大香伊一区二区三区| 男人的天堂在线视频免费观看 | 99精品国产99久久久久久福利| 国产美女视频免费观看下载软件| 婷婷综合五月天| 国产精品ⅴa有声小说| 成人午夜两性视频| 在线欧美亚洲| 午夜时刻免费入口| 91精品国产免费| 久久久男人天堂| 水蜜桃一区二区| 国产99一区视频免费 | 91精品国产综合久久久久久久久久| 亚洲wwwww| 欧美日韩另类丝袜其他| 狠狠色丁香九九婷婷综合五月 | 在线观看免费成人| 国产网友自拍视频导航网站在线观看| 97伦理在线四区| 天堂va蜜桃一区二区三区漫画版| 国产喷水在线观看| 亚洲精品美女久久| 国产91在线播放精品| www.国产在线视频| 亚洲国产精品ⅴa在线观看| 亚洲黄色精品视频| 国产精品va在线播放| 国内精品美女在线观看| 妖精视频在线观看免费| 亚洲国产精品福利| 日韩一区二区三免费高清在线观看| 日本福利视频一区| 中文字幕一区二区三区在线不卡 | 国产成人av影视| 一片黄亚洲嫩模| 一区二区三区视频网站 | 日本50路肥熟bbw|