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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

动态查看JVM内存的工具

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态查看JVM内存的工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JAVA JPS 命令詳解 JPS 名稱: jps - Java Virtual Machine Process Status Tool 命令用法: jps [options] [hostid] options:命令選項,用來對輸出格式進行控制 hostid:指定特定主機,可以是ip地址和域名, 也可以指定具體協議,端口。 [protocol:][[//]hostname][:port][/servername] 功能描述: jps是用于查看有權訪問的hotspot虛擬機的進程. 當未指定hostid時,默認查看本機jvm進程,否者查看指定的hostid機器上的jvm進程,此時hostid所指機器必須開啟jstatd服務。 jps可以列出jvm進程lvmid,主類類名,main函數參數, jvm參數,jar名稱等信息。 命令選項及功能: 沒添加option的時候,默認列出VM標示符號和簡單的class或jar名稱.如下: -p :僅僅顯示VM 標示,不顯示jar,class, main參數等信息. -m:輸出主函數傳入的參數. 下的hello 就是在執行程序時從命令行輸入的參數 -l: 輸出應用程序主類完整package名稱或jar完整名稱. -v: 列出jvm參數, -Xms20m -Xmx50m是啟動程序指定的jvm參數 -V: 輸出通過.hotsportrc或-XX:Flags=<filename>指定的jvm參數 -Joption:傳遞參數到javac 調用的java lancher. jstat命令使用 jstat命令可以查看堆內存各部分的使用量,以及加載類的數量。命令的格式如下: jstat [-命令選項] [vmid] [間隔時間/毫秒] [查詢次數] 類加載統計: C:\Users\Administrator>jstat -class 2060 Loaded Bytes Unloaded Bytes Time 15756 17355.6 0 0.0 11.29
  • Loaded:加載class的數量
  • Bytes:所占用空間大小
  • Unloaded:未加載數量
  • Bytes:未加載占用空間
  • Time:時間
編譯統計 C:\Users\Administrator>jstat -compiler 2060 Compiled Failed Invalid Time FailedType FailedMethod 9142 1 0 5.01 1 org/apache/felix/resolver/ResolverImpl mergeCandidatePackages
  • Compiled:編譯數量。
  • Failed:失敗數量
  • Invalid:不可用數量
  • Time:時間
  • FailedType:失敗類型
  • FailedMethod:失敗的方法
垃圾回收統計 C:\Users\Administrator>jstat -gc 2060 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 20480.0 20480.0 0.0 13115.3 163840.0 113334.2 614400.0 436045.7 63872.0 61266.5 0.0 0.0 149 3.440 8 0.295 3.735
  • S0C:第一個幸存區的大小
  • S1C:第二個幸存區的大小
  • S0U:第一個幸存區的使用大小
  • S1U:第二個幸存區的使用大小
  • EC:伊甸園區的大小
  • EU:伊甸園區的使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • MC:方法區大小
  • MU:方法區使用大小
  • CCSC:壓縮類空間大小
  • CCSU:壓縮類空間使用大小
  • YGC:年輕代垃圾回收次數
  • YGCT:年輕代垃圾回收消耗時間
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間
堆內存統計 C:\Users\Administrator>jstat -gccapacity 2060 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 204800.0 204800.0 204800.0 20480.0 20480.0 163840.0 614400.0 614400.0 614400.0 614400.0 0.0 63872.0 63872.0 0.0 0.0 0.0 149 8
  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:當前新生代容量
  • S0C:第一個幸存區大小
  • S1C:第二個幸存區的大小
  • EC:伊甸園區的大小
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:當前老年代大小
  • OC:當前老年代大小
  • MCMN:最小元數據容量
  • MCMX:最大元數據容量
  • MC:當前元數據空間大小
  • CCSMN:最小壓縮類空間大小
  • CCSMX:最大壓縮類空間大小
  • CCSC:當前壓縮類空間大小
  • YGC:年輕代gc次數
  • FGC:老年代GC次數
新生代垃圾回收統計 C:\Users\Administrator>jstat -gcnew 7172 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 40960.0 40960.0 25443.1 0.0 15 15 20480.0 327680.0 222697.8 12 0.736
  • S0C:第一個幸存區大小
  • S1C:第二個幸存區的大小
  • S0U:第一個幸存區的使用大小
  • S1U:第二個幸存區的使用大小
  • TT:對象在新生代存活的次數
  • MTT:對象在新生代存活的最大次數
  • DSS:期望的幸存區大小
  • EC:伊甸園區的大小
  • EU:伊甸園區的使用大小
  • YGC:年輕代垃圾回收次數
  • YGCT:年輕代垃圾回收消耗時間
新生代內存統計 C:\Users\Administrator>jstat -gcnewcapacity 7172 NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC 409600.0 409600.0 409600.0 40960.0 40960.0 40960.0 40960.0 327680.0 327680.0 12 0
  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:當前新生代容量
  • S0CMX:最大幸存1區大小
  • S0C:當前幸存1區大小
  • S1CMX:最大幸存2區大小
  • S1C:當前幸存2區大小
  • ECMX:最大伊甸園區大小
  • EC:當前伊甸園區大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代回收次數
老年代垃圾回收統計 C:\Users\Administrator>jstat -gcold 7172 MC MU CCSC CCSU OC OU YGC FGC FGCT GCT 33152.0 31720.8 0.0 0.0 638976.0 184173.0 12 0 0.000 0.736
  • MC:方法區大小
  • MU:方法區使用大小
  • CCSC:壓縮類空間大小
  • CCSU:壓縮類空間使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間
老年代內存統計 C:\Users\Administrator>jstat -gcoldcapacity 7172 OGCMN OGCMX OGC OC YGC FGC FGCT GCT 638976.0 638976.0 638976.0 638976.0 12 0 0.000 0.736
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:當前老年代大小
  • OC:老年代大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間
元數據空間統計 C:\Users\Administrator>jstat -gcmetacapacity 7172 MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT 0.0 33152.0 33152.0 0.0 0.0 0.0 12 0 0.000 0.736
  • MCMN:最小元數據容量
  • MCMX:最大元數據容量
  • MC:當前元數據空間大小
  • CCSMN:最小壓縮類空間大小
  • CCSMX:最大壓縮類空間大小
  • CCSC:當前壓縮類空間大小
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間
總結垃圾回收統計 C:\Users\Administrator>jstat -gcutil 7172 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 62.12 0.00 81.36 28.82 95.68 - 12 0.736 0 0.000 0.736
  • S0:幸存1區當前使用比例
  • S1:幸存2區當前使用比例
  • E:伊甸園區使用比例
  • O:老年代使用比例
  • M:元數據區使用比例
  • CCS:壓縮使用比例
  • YGC:年輕代垃圾回收次數
  • FGC:老年代垃圾回收次數
  • FGCT:老年代垃圾回收消耗時間
  • GCT:垃圾回收消耗總時間
JVM編譯方法統計 C:\Users\Administrator>jstat -printcompilation 7172 Compiled Size Type Method 4608 16 1 org/eclipse/emf/common/util/SegmentSequence$SegmentSequencePool$SegmentsAccessUnit reset
  • Compiled:最近編譯方法的數量
  • Size:最近編譯方法的字節碼數量
  • Type:最近編譯方法的編譯類型。
  • Method:方法名標識。
Jmap命令 如果想分析自己的JAVA Application時,可以使用jmap程序來生成heapdump文例: -heap:打印heap空間的概要,這里可以粗略的檢驗heap空間的使用情況。 例: jmap -heap 12345 輸出: Attaching to process ID 2657, please wait... Debugger attached successfully. Client compiler detected. JVM version is 1.5.0_16-b02 using thread-local object allocation. Mark Sweep Compact GC Heap Configuration: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 67108864 (64.0MB) NewSize = 655360 (0.625MB) MaxNewSize = 4294901760 (4095.9375MB) OldSize = 1441792 (1.375MB) NewRatio = 12 SurvivorRatio = 8 PermSize = 8388608 (8.0MB) MaxPermSize = 67108864 (64.0MB) Heap Usage: New Generation (Eden + 1 Survivor Space):----------------------------------------新生代區 capacity = 4521984 (4.3125MB) used = 1510200 (1.4402389526367188MB) free = 3011784 (2.8722610473632812MB) 33.39684527853261% used Eden Space:--------------------------------------------------------------------伊甸園區 capacity = 4063232 (3.875MB) used = 1495992 (1.4266891479492188MB) free = 2567240 (2.4483108520507812MB) 36.81778446320565% used From Space:-------------------------------------------------------------------年輕代(幸存者樂園1) capacity = 458752 (0.4375MB) used = 14208 (0.0135498046875MB) free = 444544 (0.4239501953125MB) 3.0970982142857144% used To Space:-----------------------------------------------------------------------------年輕代(幸存者樂園2) capacity = 458752 (0.4375MB) used = 0 (0.0MB) free = 458752 (0.4375MB) 0.0% used concurrent mark-sweep generation:-------------------------------------------------老年代 capacity = 8589934592 (8192.0MB) used = 0 (0.0MB) free = 8589934592 (8192.0MB) 0.0% used Perm Generation:----------------------------------------------------------------------永久代 capacity = 11796480 (11.25MB) used = 11712040 (11.169471740722656MB) free = 84440 (0.08052825927734375MB) 99.28419325086806% used 以上的輸出很簡單,第四行起開始輸出此進程我們的JAVA使用的環境。 Heap Configuration,指在我們啟動時設置的一些JVM參數。像最大使用內存大小,年老代,年青代,持久代大小等。有這個可以很簡單的查看本進程的內存使用情況。也許進程占用的總內存比較多,但我們在這里可以看到真正用到的并沒有多少,很多都是"Free"。內存使用的堆積大多在老年代,內存池露始于此,所以要格外關心“tenured generation”。 -heap:format=b:產生一個HeapDump文件,此為生成heapdump文件的重要參數。 例:jmap -heap:format=b 2657 會產生一個heap.bin的heapdump文件。 需要注意的是,此生成heapdump的參數為JDK1.5,在1.6中的格式為: jmap -dump:live,format=b,file=xxx 2657 這里更加強大一些,可以指定是存活的對象,還有生成heapdump的文件名。 生成的文件可以用http://www.eclipse.org/mat/downloads.php eclipse插件打開!

?

轉載于:https://www.cnblogs.com/danyuzhu11/p/10409142.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的动态查看JVM内存的工具的全部內容,希望文章能夠幫你解決所遇到的問題。

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