java查看jvm对象个数_jmap-查看 jvm 内存对象信息

jmap 概述

命令jmap是一个多功能的命令。

它可以生成 java 程序的 dump 文件,也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

参数

option:选项参数。

pid:需要打印配置信息的进程ID。

executable:产生核心dump的Java可执行文件。

core:需要打印配置信息的核心文件。

server-id 可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器。

remote server IP or hostname 远程调试服务器的IP地址或主机名。

option

no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。

heap: 显示Java堆详细信息

histo[:live]: 显示堆中对象的统计信息

clstats:打印类加载器信息

finalizerinfo: 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象

dump::生成堆转储快照

F: 当-dump没有响应时,使用-dump或者-histo参数. 在这个模式下,live子参数无效.

help:打印帮助信息

J:指定传递给运行jmap的JVM的参数

查看存活对象的例子

命令

$ jmap -histo:live pid

描述:显示堆中对象的统计信息

其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。

如果指定了live子选项,则只计算活动的对象。

实际执行

获取 pid

$ ps -ef | grep "java"

获取对应的 java 信息 pid 为 13176

执行命令

$ jmap -histo:live 13176 | head -n 10

效果

num #instances #bytes class name

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

1: 255431 27355352 [C

2: 23394 7981960 [I

3: 206158 6597056 java.util.HashMap$Node

4: 253204 6076896 java.lang.String

5: 107719 5107880 [Ljava.lang.Object;

6: 7434 4528920 [B

7: 44800 4300800 java.util.jar.JarFile$JarFileEntry

字段解释

标识字符

含义

B

基本类型byte

C

基本类型char

D

基本类型double

F

基本类型float

I

基本类型int

J

基本类型long

S

基本类型short

Z

基本类型boolean

V

特殊类型void

L

对象类型,以分号结尾,如Ljava/lang/Object;

参考资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值