国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java程序內存分析:使用mat工具分析內存占用

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

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

造成OutOfMemoryError原因一般有2種:

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

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

1. 用jmap生成堆信息
 

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

2. 將堆信息導入到mat中分析   

3. 生成分析報告

mat可以為我們生成多個報告:

下面來看看生成的這些數據對我們有什么幫助

從上圖可以看到它的大部分功能,在餅圖上,你會發現轉儲的大小和數量的類,對象和類加載器。

正確的下面,餅圖給出了一個印象***的對象轉儲。移動你的鼠標一片看到對象中的對象的細節檢查在左邊。下面的Action標簽中:

  • Histogram可以列出內存中的對象,對象的個數以及大小。

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

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

  • Leak Suspects通過MA自動分析泄漏的原因。

Histogram

  • Class Name : 類名稱,java類名

  • Objects : 類的對象的數量,這個對象被創建了多少個

  • Shallow Heap :一個對象內存的消耗大小,不包含對其他對象的引用

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


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


關于的詳細講解,建議大家查看Shallow heap & Retained heap,這是個很重要的概念。

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

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

#p#

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

這里可以看到上面3個選項,分別生成overview、leak suspects、top components數據,但是這兒生成的不是圖表,如果要看圖表在(Overview)中的Action標簽里點擊查看。

這個是Overview中的 Heap Dump Overview視圖,從工具欄中點開,這是一個全局的內存占用信息

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 格林尼治標準時間+0800上午9時20分37秒
Date 2014-7-2
Identifier size 32-bit
File path E:\jmap\map.bin
File length 108,102,005
  • Total: 12 entries


 

然后可以點開SystemProperties和Thread Overview進行查看,我這里就不貼了內容比較多。
 

Dominator Tree

我們可以看到ibatis占了較多內存

Top consumers

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

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

還有一張圖是我們比較關心的,那就是按包名看占用,根據包我們知道哪些公共用的到jar或自己的包占用
 

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

#p#

Leak Suspects

從這份報告,看到該圖深色區域被懷疑有內存泄漏,可以發現整個heap只有79.7M內存,深色區域就占了62%。所以,MAT通過簡單的報告就說明了項目是有可疑代碼的,具體點開詳情來找到類

點擊鼠標,在List Objects-> with outgoing references下可以查看該類都引用了什么對象,由此查看是否因為其他對象導致的內存問題。

下面繼續查看pool的gc ROOT

如下圖所示的上下文菜單中選擇 Path To GC Roots -> exclude weak references, 過濾掉弱引用,因為在這里弱引用不是引起問題的關鍵。

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


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 字節的容量,這是tomcat的類加載器,JDK自帶的系統類加載器中占用比較多的是HashMap。這個其實比較正常,大家經常用map作為存儲容器。

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

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

當然,mat這個工具還有很多的用法,這里把我了解的分享給大家,不管如何,最終我們需要得出系統的內存占用,然后對其進行代碼或架構,服務器的優化措施!

參考文獻:

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

責任編輯:林師授 來源: oschina
相關推薦

2015-08-21 09:56:17

Java內存分析MAT使用

2013-07-23 06:56:12

Android內存機制APP內存使用情況Android開發學習

2009-05-12 10:27:53

Java開發內存分析

2015-08-06 14:54:50

JavaScript分析工具OneHeap

2013-08-02 09:52:14

AndroidApp內存泄漏

2023-05-29 07:17:48

內存溢出場景

2023-02-10 09:28:23

優化工具

2021-11-04 11:54:30

Linux內存系統

2018-04-17 14:41:41

Java堆內存溢出

2013-08-02 10:06:36

Android內存溢出

2021-04-23 20:59:02

ThreadLocal內存

2017-11-09 16:07:00

Web應用內存

2020-02-09 17:23:17

Python數據字典

2013-11-26 16:05:24

Linux共享內存

2012-06-05 00:41:07

JavaJava內存

2015-11-16 11:22:05

Java對象內存分配

2020-12-07 06:23:48

Java內存

2011-08-16 09:34:34

Nginx

2018-07-03 09:00:00

Redis內存分析工具

2011-11-22 09:57:24

Node.js
點贊
收藏

51CTO技術棧公眾號

fc2ppv国产精品久久| 色戒在线免费观看| 最近中文字幕2019免费| 97超碰在线资源站| 成人看片毛片免费播放器| 亚洲欧美日韩电影| 日韩中文在线不卡| 亚洲一区国产精品| 一二三四社区在线视频| 欧美有码在线| 久久精品人人做人人爽97| 精品国产电影| 秋霞午夜在线观看| 中文字幕视频一区| 成人免费毛片在线观看| 日韩黄色在线| 日韩精品一区二区三区视频| 精品人伦一区二区三区| 日本中文字幕在线一区| 在线亚洲国产精品网| 色呦呦久久久| 欧美美女一区二区三区| 亚洲一区二区三区成人| 亚洲精品免费在线播放| a在线观看免费视频| 99精品在线观看视频| 国产奶头好大揉着好爽视频| 爽好久久久欧美精品| 久久riav二区三区| 亚洲七七久久综合桃花剧情介绍| 亚洲男人天堂一区| 激情网站五月天| 大美女一区二区三区| 欧美人在线观看| 日韩精品影院| 中文字幕在线免费不卡| heyzo亚洲| 国产69精品久久久久777| 不卡毛片在线看| 亚洲涩涩在线| 欧美激情一区二区三区| 国产精品自产拍在线观看| 电影一区二区三区久久免费观看| 亚洲人高潮女人毛茸茸| 欧美视频在线观看网站| 国产在线精品免费av| 一区二区欧美日韩| 午夜宅男久久久| 免费在线成人av| 国产精品一二三四区| 亚洲大片免费看| 久久精品国产68国产精品亚洲| 九色porny91| 青青青爽久久午夜综合久久午夜| 国语一区二区三区| 日韩中文在线中文网三级| 日韩欧美一区三区| 激情小说亚洲一区| 日韩av在线发布| 精品日韩成人av| 欧美成人午夜视频| 精品人伦一区二区三区蜜桃网站 | 最近2019年好看中文字幕视频 | 国产精品视频自在线| 爽爽窝窝午夜精品一区二区| 国产福利一区在线| 久久久精品亚洲| 国产二区三区四区| 国产欧美日韩一级| 欧美激情导航| 日韩福利电影在线观看| 成人污网站在线观看| 久久久午夜精品理论片中文字幕| 亚洲在线免费视频| 亚洲一区日本| 国产成人一二三区| 中文字幕在线免费不卡| 国产女主播在线写真| 久久久久久久久久久久久女国产乱| 日韩av手机版| 狠狠躁天天躁日日躁欧美| 伊人精品影院| 午夜精品福利一区二区蜜股av| 一区二区不卡在线视频 午夜欧美不卡' | 亚洲国产一区二区在线播放| 亚洲成人第一| 北岛玲一区二区三区四区| 99久久自偷自偷国产精品不卡| 亚洲一区图片| 国产福利影院在线观看| 91精品福利视频| 久久天堂影院| 成人区精品一区二区| 成人av在线网站| 日韩少妇中文字幕| 欧洲美女日日| 欧美理论一区二区| 97se亚洲国产综合自在线| 国产对白在线正在播放| 亚洲国产精品va在线观看黑人| 色先锋久久影院av| 日本一区免费在线观看| 亚洲欧美视频在线观看| 黄色的视频在线观看| 色噜噜偷拍精品综合在线| 在线中文字幕视频观看| 91国产精品91| 欧美日韩黄色| 国产精品免费一区二区三区在线观看 | 免费观看精品视频| 色美美综合视频| 9999在线精品视频| 日韩精品中文字幕久久臀| 久久av免费看| 日韩中文字幕在线不卡| 91高清视频免费看| 丁香一区二区| 亚洲啊啊啊啊啊| 美女视频一区二区三区| 国产精品久久精品国产| 91色在线porny| 18+视频在线观看| 国产成人在线播放| 成人av电影在线观看| 在线视频观看国产| 91在线观看免费网站| 中文幕一区二区三区久久蜜桃| 国产美女高潮在线| 国产一区免费视频| 亚洲成人av一区二区| 国产精品毛片视频| 麻豆tv在线播放| 精品在线小视频| 日本一不卡视频| 香蕉视频在线看| 91成人免费观看| 亚洲国产日日夜夜| 亚洲aaa级| 窝窝九色成人影院| 欧美风情在线观看| 久久婷婷色综合| 日韩avxxx| 亚洲精品99999| 亚洲欧美成人综合| 在线中文资源天堂| 97中文在线| 日韩欧美在线第一页| 图片婷婷一区| 欧美日韩亚洲自拍| 欧美成人在线影院| 91在线精品一区二区三区| 国产香蕉久久| 懂色av粉嫩av蜜臀av| 91精品国产福利| 国产精品亚洲产品| 免费的黄网站在线观看| 精品一卡二卡三卡四卡日本乱码| 色哟哟一区二区在线观看| 免费黄网站在线| 亚洲一区二区三区毛片| 精品久久中文字幕久久av| 欧美中文一区二区| 亚洲热app| 国产福利不卡| 日韩视频一区二区三区在线播放 | 国精产品一区一区三区有限在线| 国产一区二区在线看| sm在线播放| 粉嫩av一区二区三区天美传媒 | 日本一区二区电影| 人妻无码久久一区二区三区免费| 亚洲新中文字幕| 欧美调教网站| 色偷偷亚洲第一综合| 午夜精品久久17c| 亚洲欧美日韩国产成人精品影院 | 亚洲欧美成人影院| 色播五月综合| 久久久久久99久久久精品网站| 91精品国产66| 国产嫩草在线观看| 国产91精品视频在线观看| 亚洲一区影音先锋| 在线国产欧美| 日韩在线观看a| 香蕉成人啪国产精品视频综合网| 俺要去色综合狠狠| 国内在线精品| 欧美成人精品激情在线观看| 久久久美女毛片| 久久99久久人婷婷精品综合| 精品电影在线| 特级黄色录像片| 国内免费久久久久久久久久久| 欧美日韩国产中文字幕| 三级不卡在线观看| 三级欧美日韩| 北岛玲日韩精品一区二区三区| 中文字幕一区二区三区四区五区人| 欧美日本在线视频中文字字幕|