日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Java > 正文

深入java內(nèi)存查看與分析詳解

2019-11-26 16:05:08
字體:
供稿:網(wǎng)友
1:gc日志輸出
在jvm啟動參數(shù)中加入 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimestamps -XX:+PrintGCApplicationStopedTime,jvm將會按照這些參數(shù)順序輸出gc概要信息,詳細(xì)信息,gc時間信息,gc造成的應(yīng)用暫停時間。如果在剛才的參數(shù)后面加入?yún)?shù) -Xloggc:文件路徑,gc信息將會輸出到指定的文件中。其他參數(shù)還有
-verbose:gc和-XX:+PrintTenuringDistribution等。
2:jconsole
jconsole是jdk自帶的一個內(nèi)存分析工具,它提供了圖形界面。可以查看到被監(jiān)控的jvm的內(nèi)存信息,線程信息,類加載信息,MBean信息。
jconsole位于jdk目錄下的bin目錄,在windows下是jconsole.exe,在unix和linux下是jconsole.sh,jconsole可以監(jiān)控本地應(yīng)用,也可以監(jiān)控遠(yuǎn)程應(yīng)用。 要監(jiān)控本地應(yīng)用,執(zhí)行jconsole pid,pid就是運行的java進(jìn)程id,如果不帶上pid參數(shù),則執(zhí)行jconsole命令后,會看到一個對話框彈出,上面列出了本地的java進(jìn)程,可以選擇一個進(jìn)行監(jiān)控。如果要遠(yuǎn)程監(jiān)控,則要在遠(yuǎn)程服務(wù)器的jvm參數(shù)里加入一些東西,因為jconsole的遠(yuǎn)程監(jiān)控基于jmx的,關(guān)于jconsole詳細(xì)用法,請見專門介紹jconsle的文章,我也會在博客里專門詳細(xì)介紹jconsole。
3:jviusalvm
在JDK6 update 7之后,jdk推出了另外一個工具:jvisualvm,java可視化虛擬機,它不但提供了jconsole類似的功能,還提供了jvm內(nèi)存和cpu實時診斷,還有手動dump出jvm內(nèi)存情況,手動執(zhí)行g(shù)c。
和jconsole一樣,運行jviusalvm,在jdk的bin目錄下執(zhí)行jviusalvm,windows下是jviusalvm.exe,linux和unix下是jviusalvm.sh。
4:jmap
jmap是jdk自帶的jvm內(nèi)存分析的工具,位于jdk的bin目錄。jdk1.6中jmap命令用法:
復(fù)制代碼 代碼如下:

Usage:
jmap -histo <pid>
(to connect to running process and print histogram of java object heap
jmap -dump:<dump-options> <pid>
(to connect to running process and dump java heap)
dump-options:
format=b binary default
file=<file>  dump heap to <file>
Example:   jmap -dump:format=b,file=heap.bin <pid>
jmap -histo <pid>在屏幕上顯示出指定pid的jvm內(nèi)存狀況。以我本機為例,執(zhí)行該命令,屏幕顯示:
num #instances #bytes  class name
----------------------------------------------
1: 242062791864  <constMethodKlass>
2: 223712145216  [C
3: 242061940648  <methodKlass>
4:  19511364496  <constantPoolKlass>
5: 265431282560  <symbolKlass>
6:  63771081744  [B
7:  1793 909688  <constantPoolCacheKlass>
8:  1471 614624  <instanceKlassKlass>
9: 14581 548336  [Ljava.lang.Object;
10:  3863 513640  [I
11: 20677 496248  java.lang.String
12:  3621 312776  [Ljava.util.HashMap$Entry;
13:  3335 266800  java.lang.reflect.Method
14:  8256 264192  java.io.ObjectStreamClass$WeakClassKey
15:  7066 226112  java.util.TreeMap$Entry
16:  2355 173304  [S
17:  1687 161952  java.lang.Class
18:  2769 150112  [[I
19:  3563 142520  java.util.HashMap
20:  5562 133488  java.util.HashMap$Entry
Total239019   17140408

為了方便查看,我刪掉了一些行。從上面的信息很容易看出,#instance指的是對象數(shù)量,#bytes指的是這些對象占用的內(nèi)存大小,class name指的是對象類型。
再看jmap的dump選項,這個選項是將jvm的堆中內(nèi)存信息輸出到一個文件中,在我本機執(zhí)行
jmap -dump:file=c:dump.txt 340
注意340是我本機的java進(jìn)程pid,dump出來的文件比較大有10幾M,而且我只是開了tomcat,跑了一個很簡單的應(yīng)用,且沒有任何訪問,可以想象,大型繁忙的服務(wù)器上,dump出來的文件該有多大。需要知道的是,dump出來的文件信息是很原始的,絕不適合人直接觀看,而jmap -histo顯示的內(nèi)容又太簡單,例如只顯示某些類型的對象占用多大內(nèi)存,以及這些對象的數(shù)量,但是沒有更詳細(xì)的信息,例如這些對象分別是由誰創(chuàng)建的。那這么說,dump出來的文件有什么用呢?當(dāng)然有用,因為有專門分析jvm的內(nèi)存dump文件的工具。
5:jhat
上面說了,有很多工具都能分析jvm的內(nèi)存dump文件,jhat就是sun jdk6及以上版本自帶的工具,位于jdk的bin目錄,執(zhí)行 jhat -J -Xmx512m [file] ,file就是dump文件路徑。jhat內(nèi)置一個簡單的web服務(wù)器,此命令執(zhí)行后,jhat在命令行里顯示分析結(jié)果的訪問地址,可以用-port選項指定端口,具體用法可以執(zhí)行jhat -heap查看幫助信息。訪問指定地址后,就能看到頁面上顯示的信息,比jmap -histo命令顯示的豐富得多,更為詳細(xì)。
6:eclipse內(nèi)存分析器
上面說了jhat,它能分析jvm的dump文件,但是全部是文字顯示,eclipse memory analyzer,是一個eclipse提供用于分析jvm 堆dump的插件,它的分析速度比jhat快,分析結(jié)果是圖形界面顯示,比jhat的可讀性更高。其實jvisualvm也可以分析dump文件,也是有圖形界面顯示的。
7:jstat
如果說jmap傾向于分析jvm內(nèi)存中對象信息的話,那么jsta就是傾向于分析jvm內(nèi)存的gc情況。都是jvm內(nèi)存分析工具,但顯然,它們是從不同維度來分析的。jsat常用的參數(shù)有很多,如 -gc,-gcutil,-gccause,這些選項具體作用可查看jsat幫助信息,我經(jīng)常用-gcutil,這個參數(shù)的作用不斷的顯示當(dāng)前指定的jvm內(nèi)存的垃圾收集的信息。
我在本機執(zhí)行 jstat -gcutil 340 10000,這個命令是每個10秒鐘輸出一次jvm的gc信息,10000指的是間隔時間為10000毫秒。屏幕上顯示如下信息(我只取了第一行,因為是按的一定頻率顯示,所以實際執(zhí)行的時候,會有很多行):
復(fù)制代碼 代碼如下:

S0 S1 E  O  P YGC YGCTFGCFGCT GCT
54.62   0.00  42.87  43.52  86.24   17925.093337.670   12.763

額……怎么說呢,要看懂這些信息代表什么意思,還必須對jvm的gc機制有一定的了解才行啊。其實如果對sun的 hot spot jvm的gc比較了解的人,應(yīng)該很容易看懂這些信息,但是不清楚gc機制的人,有點莫名其妙,所以在這里我還是先講講sun的jvm的gc機制吧。說到gc,其實不僅僅只是java的概念,其實在java之前,就有很多語言有g(shù)c的概念了,gc嘛就是垃圾收集的意思,更多的是一種算法性的東西,而跟具體語言沒太大關(guān)系,所以關(guān)于gc的歷史,gc的主流算法我就不講了,那扯得太遠(yuǎn)了,扯得太遠(yuǎn)了就是扯淡。sun現(xiàn)在的jvm,內(nèi)存的管理模型是分代模型,所以gc當(dāng)然是分代收集了。分代是什么意思呢?就是將對象按照生命周期分成三個層次,分別是:新生代,舊生代,持久代。對象剛開始分配的時候,大部分都在新生代,當(dāng)新生代gc提交被觸發(fā)后了,執(zhí)行一次新生代范圍內(nèi)的gc,這叫minor gc,如果執(zhí)行了幾次minor gc后,還有對象存活,將這些對象轉(zhuǎn)入舊生代,因為這些對象已經(jīng)經(jīng)過了組織的重重考驗了哇。舊生代的gc頻率會更低一些,如果舊生代執(zhí)行了gc,那就是full gc,因為不是局部gc,而是全內(nèi)存范圍的gc,這會造成應(yīng)用停頓,因為全內(nèi)存收集,必須封鎖內(nèi)存,不許有新的對象分配到內(nèi)存,持久代就是一些jvm期間,基本不會消失的對象,例如class的定義,jvm方法區(qū)信息,例如靜態(tài)塊。需要主要的是,新生代里又分了三個空間:eden,susvivor0,susvivor1,按字面上來理解,就是伊甸園區(qū),幸存1區(qū),幸存2區(qū)。新對象分配在eden區(qū)中,eden區(qū)滿時,采用標(biāo)記-復(fù)制算法,即檢查出eden區(qū)存活 的對象,并將這些對象復(fù)制到是s0或s1中,然后清空eden區(qū)。jvm的gc說開來,不只是這么簡單,例如還有串行收集,并行收集,并發(fā)收集,還有著名的火車算法,不過那說得太遠(yuǎn)了,現(xiàn)在對這個有大致了解就好。說到這里,再來看一下上面輸出的信息:
復(fù)制代碼 代碼如下:

S0   S1   EO  P   YGC YGCTFGCFGCT GCT
54.62   0.00  42.87  43.52  86.24   17925.093337.670   12.763
S0:新生代的susvivor0區(qū),空間使用率為5462%
S1:新生代的susvivor1區(qū),空間使用率為0.00%(因為還沒有執(zhí)行第二次minor收集)
E:eden區(qū),空間使用率42.87%
O:舊生代,空間使用率43.52%
P:持久帶,空間使用率86.24%
YGC:minor gc執(zhí)行次數(shù)1792次
YGCT:minor gc耗費的時間5.093毫秒
FGC:full gc執(zhí)行次數(shù)33
FGCT:full gc耗費的時間7.670毫秒
GCT:gc耗費的總時間12.763毫秒

怎樣選擇工具
上面列舉的一些工具,各有利弊,其實如果在開發(fā)環(huán)境,使用什么樣的工具是無所謂的,只要能得到結(jié)果就好。但是在生產(chǎn)環(huán)境里,卻不能亂選擇,因為這些工具本身就會耗費大量的系統(tǒng)資源,如果在一個生產(chǎn)服務(wù)器壓力很大的時候,貿(mào)然執(zhí)行這些工具,可能會造成很意外的情況。最好不要在服務(wù)器本機監(jiān)控,遠(yuǎn)程監(jiān)控會比較好一些,但是如果要遠(yuǎn)程監(jiān)控,服務(wù)器端的啟動腳本要加入一些jvm參數(shù),例如用jconsloe遠(yuǎn)程監(jiān)控tomcat或jboss等,都需要設(shè)置jvm的jmx參數(shù),如果僅僅只是分析服務(wù)器的內(nèi)存分配和gc信息,強烈推薦,先用jmap導(dǎo)出服務(wù)器端的jvm的堆dump文件,然后再用jhat,或者jvisualvm,或者eclipse內(nèi)存分析器來分析內(nèi)存狀況。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
九九在线精品| 欧美日韩午夜精品| 亚洲黄页一区| 日韩在线一区二区| 99综合视频| 在线观看免费国产小视频| 亚洲福利在线看| 亚洲高清视频一区| 在线免费播放av| 二区视频在线观看| 婷婷精品视频| 在线看av的网址| 久久久99免费| 亚洲第一福利视频在线| 在线一区二区三区精品| 国产日韩精品视频| 91亚洲国产| 欧美三级免费观看| 在线观看免费国产小视频| 国产小视频免费在线观看| 国产三级做爰在线观看| 欧美在线视频一区二区| 国产一区三区三区| 亚洲乱码一区av黑人高潮| 欧美国产日韩综合| 在线免费播放av| 中文字幕在线高清| 亚洲第一视频| 欧美一级日韩一级| 欧美三级在线播放| 一区二区不卡在线| 一区二区视频国产| 1区2区3区在线视频| 成片免费观看| 国产福利第一页| 大香一本蕉伊线亚洲网| 欧美日韩精品免费| 日本免费在线视频不卡一不卡二| 国产一区日韩欧美| 午夜国产福利在线观看| 刘玥91精选国产在线观看| 精品久久九九| 精品视频www| 中文 欧美 日韩| 中文字幕 欧美日韩| 中文字幕日韩在线观看| 高清1区2区| 日韩一级二级三级精品视频| 欧美一级日韩不卡播放免费| 交视频在线观看国产| 欧美日韩国产在线看| 天堂中文在线视频| 成年人黄国产| 国产 欧美 在线| 欧美日韩视频不卡| 欧美专区中文字幕| 亚洲综合在线小说| 亚洲国产福利视频| 国产欧美综合在线观看第十页 | 亚洲a中文字幕| 精品人妻二区中文字幕| 亚洲欧洲日韩在线| 中文字幕欧美日韩在线| 国产一区日韩欧美| 国产视频中文字幕在线观看| 日韩欧美不卡在线| 欧美一级在线免费| 日韩欧美中文字幕一区| 日韩欧美三级视频| 日韩一级视频在线观看| av亚洲免费| 国产手机精品视频| 欧美日韩国产黄色| 欧美日韩性视频| 亚洲经典中文字幕| 日韩精品在线观| 中文字幕 乱码 中文乱码91| 亚洲一区中文在线| 精品欧美日韩精品| 91欧美日韩在线| 国产91久久久久| 亚洲一级特黄| 中文字幕狠狠干| 日韩高清不卡一区| 一区二区三区在线播放欧美| 亚洲人线精品午夜| 国产成人综合精品| 国产在线播放一区二区| 日本不卡视频一区| 日韩视频1区| 亚洲综合在线不卡| 91久久在线| 中文字幕亚洲欧美| 日韩中文字幕视频在线观看| 在线免费91| 一区免费在线| 欧美中文字幕视频| 国产欧美日韩三级| 国产资源在线观看入口av| 欧美日韩国产免费观看视频| 国产欧美 在线欧美| 中文字幕亚洲区| 亚洲国产福利| 欧美日韩国产免费观看视频| 亚洲成年人影院在线| 精品一二线国产| 欧美日韩国产高清视频| 亚洲中文字幕一区| 亚洲开心激情| 精品国产1区2区3区| 欧美日韩在线精品成人综合网 | 国产福利一区二区| 欧美日韩999| 中文字幕在线欧美| 亚洲欧美久久久| 国产欧美日韩中文| 99国产一区| 日韩在线视频网| 欧美成人vr18sexvr| 欧美三级视频在线| 色综合天天性综合| 一区视频在线播放| 精品一区二区三区中文字幕| 最近中文av字幕在线中文| 蜜桃视频中文字幕| 999精品网| √新版天堂资源在线资源| 欧美一级搡bbbb搡bbbb| av中文在线播放| 一区二区在线观| 国产一区在线不卡| 亚洲第一中文字幕| 国产伦精品免费视频| 国产香蕉免费精品视频| 在线观看国产一级片| 亚洲欧洲综合另类| 免费在线亚洲| 日韩中文字幕视频在线| 欧美国产一级片| 亚亚洲欧洲精品| 精品中文字幕在线播放| 日韩精品在线免费看| av手机天堂| 国产欧美日韩精品在线| 中文字幕第一页在线播放| 欧美日韩高清不卡| 中文字幕在线观看播放| 91精品国产91久久久久久三级| 欧美日韩综合高清一区二区| 久久婷婷中文字幕| 欧美一级欧美三级在线观看| 精品一区二区三区中文字幕在线| 一级免费a一片| 欧美日韩在线第一页| 天堂在线视频中文网| 欧美一级一级性生活免费录像| 亚洲伊人婷婷| 欧美亚洲专区| av免费观看网站| 视频一区二区中文字幕| 精品欧美不卡一区二区在线观看| 国产亚洲欧美中文| 中文字幕亚洲在| 国产日产一区二区三区 | 99在线精品视频免费观看20| 欧美日韩国产一二| 一级片免费在线| 免费在线国产| 美女黄a一级视频| 91精品国产99| 国产高清一区| 在线观看91精品国产入口| aa国产成人| 日韩精品福利视频| 国产欧美日韩成人| 伊人伊成久久人综合网小说| 91精品国产综合久久久久久| 日本啊v在线| 久久夜色精品国产噜噜亚洲av| 91精品在线免费观看| 婷婷久久综合网| 国产成人精品999在线观看| 欧美日韩一二三| av免费网站在线观看| 日韩国产欧美亚洲| 91久久久精品国产| 中文字幕五月天| 欧美日韩精品欧美日韩精品 | 色猫猫国产区一区二在线视频| 欧美日韩亚洲国内综合网| 日韩欧美国产成人精品免费| 欧美黄页在线免费观看| 深夜福利亚洲| 国产在线欧美日韩| 国产三级在线观看视频| 91精品国产全国免费观看| 久艹在线视频| 欧美日韩三级在线观看| 日本精品专区| 欧美三级在线看| 日韩久久99| 欧美日韩精品中文字幕| 日韩av综合在线观看| 欧美日本精品在线| 91久久久久| 欧美色视频一区二区三区在线观看| 成人久久在线| 日韩在线视频中文字幕| 日韩视频一区在线观看| 国产永久在线观看| 二区三区不卡不卡视频| 欧美日韩激情在线一区二区三区 | 亚洲国产无线乱码在线观看| 99综合视频| 中文字幕久精品免费视频| 欧美久久综合性欧美| 久久精品在线免费观看| 中文在线视频| 久久精品99国产国产精| 日韩欧美三级在线| 日韩精品乱码av一区二区| 亚洲a一级视频| 日韩免费精品视频| 日韩久久精品视频| 91久久在线| 九一久久久久久| 中文在线视频观看| 91精品国产丝袜白色高跟鞋| 中文字幕精品www乱入免费视频| 国产午夜在线观看| 日韩精品大片| 日韩欧美国产亚洲| 欧美日韩精品在线播放| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 日韩中文字幕在线播放| 美女尤物久久精品| 日韩亚洲欧美中文字幕| 亚洲视频在线观看日本a| 99视频精品全国免费| 亚洲一级影院| 中文字幕在线观看播放| 中文字幕精品在线| 亚洲欧洲日韩在线| 精品日韩在线观看| 日韩午夜一区| 日韩中文字幕视频在线观看| 婷婷久久综合九色国产成人| www.久久草| 欧美色欧美亚洲高清在线视频| 日韩不卡一二三区| 色猫猫国产区一区二在线视频| 午夜精品一区二区三区免费视频| 日韩精品综合在线| 亚洲精品中文字幕乱码三区不卡| 国产网站欧美日韩免费精品在线观看| 亚洲第一中文字幕| 午夜福利一区二区三区| 日韩久久在线| 伊人永久在线| 免费在线播放av| 日韩免费视频一区| 91精品国产网站| 久久精品卡一| 久久久99久久精品欧美 | 欧美日韩中国免费专区在线看| 国产香蕉免费精品视频| 国产婷婷精品| 亚洲开心激情| 一区二区在线观看不卡| 天堂中文在线视频| 欧美日韩免费不卡视频一区二区三区| 国产福利免费观看| 日韩精品久久久| 日韩欧美国产1| 国产99精品| 国产视频一二区| 国产一区二中文字幕在线看| 久久精品卡一| 国产激情在线观看| 久久精品久久精品亚洲人| 91精品在线免费| av一区在线观看| 视频一区二区不卡| 国产欧美日韩亚州综合| 亚洲免费中文字幕| 日韩在线高清视频| 成人一区而且| 91精品国产91久久久久青草| 中文精品在线| 精品综合久久久久| 精品成a人在线观看| 91精品国产综合久久精品| 国产网站av| 91精品在线观看国产| 日韩欧美久久久| 欧美日韩高清一区二区| 国产乱国产乱300精品| 精品国产欧美日韩| 国产欧美日韩不卡免费| 久久香蕉精品| 久精品在线观看| 国产三级在线观看视频| 色综合久久88色综合天天免费| 国产99亚洲| 91精品久久久久久久91蜜桃| 欧美国产91| 日韩精品乱码av一区二区| 91精品国产综合久久香蕉最新版| 亚洲a中文字幕| 最近免费中文字幕在线第一页| 婷婷中文字幕在线观看| 国产在线第一页| 97caopor国产在线视频| 欧美日韩中文字幕视频| 日韩精品a在线观看91| 久久久另类综合| 日韩欧美国产高清91| 美女在线视频一区| 国产成人中文字幕| 91精品视频免费在线观看| 欧美成人二区| 国产v日产∨综合v精品视频| 97久久精品午夜一区二区| 交视频在线观看国产| 欧美日韩在线不卡一区| 一区二区三区视频网站| 欧美日韩激情一区| 一区二区三区在线播放视频| 亚洲精品中文字幕乱码三区不卡| 日韩精品 欧美| 91精品网站| 欧美亚洲国产免费| 国产999精品在线观看| 91精品久久久久久蜜臀| 精品亚洲永久免费| 国产日韩亚洲欧美| 国产精品视频福利一区二区| 国产三级精品网站| 欧美国产小视频| √天堂资源中文www| 日本亚洲视频在线| 欧美日韩在线不卡| 欧美日韩国产一级片| 欧美日韩国产高清一区| 91久久大香伊蕉在人线| 欧美日韩国产一区中文午夜| 91精品国产综合久久久蜜臀粉嫩| 91精品国产高清| 欧美日韩在线看| 91精品国产综合久久久久| av免费在线不卡| 久久99久久久久| 欧美久久综合性欧美| 日韩精品在线私人| 日韩 国产 一区| 91精品国产综合久久久久 | 国产在线www| 中文字幕亚洲乱码| 久久精品久久精品亚洲人| 亚洲美女视频一区| 日韩区欧美区| 日韩在线 中文字幕| 久久久久久欧美| 欧美日韩在线视频免费观看| 亚洲永久字幕| 精品国产免费视频| 国产手机视频一区二区| 欧美日韩免费不卡视频一区二区三区| 国产视频1区2区| 亚洲二区自拍| 在线国产1区| 国产成人中文字幕| 日韩欧美国产网站| 日韩中文字幕在线视频播放| 日韩亚洲欧美中文三级| 二区视频在线观看| 免费精品国产自产拍观看| 免费视频国产一区| 日韩视频在线一区二区三区| 日韩在线高清视频| 久久欧美中文字幕| 午夜一区二区三区视频| 日韩中文字幕在线观看视频| 日韩精品手机在线观看| 国产在线高潮| 久久91精品久久久久久秒播| 91麻豆精品国产91久久久使用方法| 欧美日韩精品国产| 日韩色在线观看| 欧美久久久精品| 国产一区久久久| 日韩欧美在线网址| 亚洲三级网站| 久久99久久久欧美国产| 久久麻豆视频| 精品三级久久| 中文在线中文字幕| 亚洲va中文字幕| 精品日韩在线| 日本精品在线播放|