[java性能监测工具02]-jmap

jmap即jvm  memory  map,用来查看内存使用情况。

格式:jmap  选项   java进程id

常用选项:

    -heap :打印进程的堆内存信息

    -histo[:live]:查看堆内存中的对象数目、大小、类型,如果带上live则只统计活对象

    -dump:format=b,file=dumpFileName:用jmap把进程内存使用情况dump到文件dumpFileName中,再用jhat工具来分析查看

  1. java -heap pid查看进程堆内存信息:

    下面是查看tomcat进程的信息,我把输出信息拷贝了下来,旁边的汉字是我的注释。

[root@izuf6427vfht8yq4y87zo2z ~]# jmap -heap 19311
Attaching to process ID 19311, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.80-b11

using thread-local object allocation.
Mark Sweep Compact GC

Heap Configuration:
   MinHeapFreeRatio = 40
   MaxHeapFreeRatio = 70
   MaxHeapSize      = 536870912 (512.0MB)  #通过在tomcat的文件catalina.sh中配置"-Xmx512m"指定
   NewSize          = 1310720 (1.25MB)
   MaxNewSize       = 17592186044415 MB
   OldSize          = 5439488 (5.1875MB)
   NewRatio         = 2
   SurvivorRatio    = 8
   PermSize         = 268435456 (256.0MB)#通过在tomcat的文件catalina.sh中配置"-XX:PermSize=256m"指定 
   MaxPermSize      = 268435456 (256.0MB)#通过在tomcat的文件catalina.sh中配置"-XX:MaxPermSize=256m"指定 
   G1HeapRegionSize = 0 (0.0MB)

Heap Usage:  #堆内存结构
New Generation (Eden + 1 Survivor Space):  #年轻代
   capacity = 161021952 (153.5625MB)
   used     = 120507304 (114.92472076416016MB)
   free     = 40514648 (38.637779235839844MB)
   74.8390530006741% used
Eden Space:  #伊甸园区域
   capacity = 143130624 (136.5MB)
   used     = 112557352 (107.34305572509766MB)
   free     = 30573272 (29.156944274902344MB)
   78.6396012638078% used
From Space:  #幸存者乐园的from区域
   capacity = 17891328 (17.0625MB)
   used     = 7949952 (7.5816650390625MB)
   free     = 9941376 (9.4808349609375MB)
   44.434666895604394% used
To Space:#幸存者乐园的to区域
   capacity = 17891328 (17.0625MB)
   used     = 0 (0.0MB)
   free     = 17891328 (17.0625MB)
   0.0% used
tenured generation: #年老代
   capacity = 357957632 (341.375MB)
   used     = 77723320 (74.12273406982422MB)
   free     = 280234312 (267.2522659301758MB)
   21.712994235027235% used
Perm Generation:  #持久代
   capacity = 268435456 (256.0MB)
   used     = 69037920 (65.83969116210938MB)
   free     = 199397536 (190.16030883789062MB)
   25.718629360198975% used

25472 interned Strings occupying 2990792 bytes.

说明:

堆内存=年轻代+年老代+持久代
年轻代=伊甸园区域+幸存者乐园区域(surviver spaces)中的一个区域
幸存者乐园区域(surviver spaces)=from区域+to区域

2.jmap -histo pid:查看堆内存中的对象数目、大小、类型,因为输出太多,我这里只截取了开头和结尾两部分:

共四列输出,分别表示序号、实例在堆中的个数、所占堆的大小、类型。

类型有的是简写,大致是下边几种类型:

B  byte
C  char
D  double
F  float
I  int
J  long
Z  boolean
[  数组,如[I表示int[]
[L+类名 其他对象

我们看到大部分类都不认识,但是你总能找到自己的类,比如我上边红框框住的那个类。

3.jmap -dump:format=b,file=dumpFileName的使用,以后结合jhat再说。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值