1. 程式人生 > >jmap命令(Java Memory Map)的使用

jmap命令(Java Memory Map)的使用

notes read 一個 net file 64位 pac mem tools

jmap的使用能夠參考:

官方文檔 http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html

和這篇博客 http://blog.csdn.net/fenglibing/article/details/6411953

本文主要是介紹一下jmap經常使用的幾個參數,作為自己的備忘錄。註意假設是使用64位的JVM,使用jmap的時候,須要加-J-d64


1、打印每一個class的實例數量,內存占用,類全名信息.live子參數,僅僅統計活的對象數量.

> jmap -histo:live 6824

 num     #instances         #bytes  class name
----------------------------------------------
   1:          1232         238144  [C
   2:           414          48184  <constMethodKlass>
   3:            69          32712  [B
   4:           414          29864  <methodKlass>
   5:            60          29512  <constantPoolKlass>
   6:          1084          26016  java.lang.String


2、打印永久代中classloader的相關信息

>jmap -permstat 6824
class_loader    classes bytes   parent_loader   alive?  type

<bootstrap>     382     1684072   null          live    <internal>
0x2a3a7fe0      0       0         null          live    [email protected]
0x2a3aa748      6       51592   0x2a3a7fe0      live    [email protected]
/* */
3、顯示對內存的分配和使用情況,對於了解jvm內存分配非常實用,會顯示年輕代、老年代和永久代的相關內存信息。
>jmap -heap 6824
using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
   MinHeapFreeRatio = 40

4、最經常使用的獲取內存dump

jmap -dump:live,format=b,file=m.hprof 6824 
能夠參考http://blog.csdn.net/aitangyong/article/details/24012535這篇博客


jmap命令(Java Memory Map)的使用