java 查看内存中_java内存查看与分析

4:jmap

jmap是jdk自带的jvm内存分析的工具,位于jdk的bin目录。jdk1.6中jmap命令用法:

Usage:

jmap -histo

(to connect to running process and print histogram of java object heap

jmap -dump:

(to connect to running process and dump java heap)

dump-options:

format=b     binary default

file=  dump heap to

Example:       jmap -dump:format=b,file=heap.bin

jmap -histo 在屏幕上显示出指定pid的jvm内存状况。以我本机为例,执行该命令,屏幕显示:

num     #instances         #bytes  class name

----------------------------------------------

1:         24206        2791864 

2:         22371        2145216  [C

3:         24206        1940648 

4:          1951        1364496 

5:         26543        1282560 

6:          6377        1081744  [B

7:          1793         909688 

8:          1471         614624 

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

Total        239019       17140408

为了方便查看,我删掉了一些行。从上面的信息很容易看出,#instance指的是对象数量,#bytes指的是这些对象占用的内存大小,class name指的是对象类型。

再看jmap的dump选项,这个选项是将jvm的堆中内存信息输出到一个文件中,在我本机执行

jmap -dump:file=c:dump.txt 340

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值