jmap -histo pid 输出的[C [B [I [S methodKlass constantPoolKlass含义

本文详细解析了HeapHistogram输出中关于Class对象占用内存的情况,特别是与String和Classloader相关的内存占用分析,揭示了String内部结构及其对Heap的影响,并探讨了Classloader在Perm区的常驻作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Heap Histogram

All Classes (excluding platform)

ClassInstance CountTotal Size
class [I1029574101376
class [B3748420206389
class [C770319857592
class [Ljava.lang.Object;182321935080
class java.lang.String700311400620
class [Ljava.util.HashMap$Entry;71561344856
class java.lang.reflect.Method6986901194
class java.util.HashMap$Entry25634717752
class java.lang.Class4535653040
class [S9082617178
class java.nio.HeapByteBuffer9998389922
class java.nio.HeapCharBuffer9736360232
class [Ljava.lang.String;4306330664
class java.util.HashMap6454309792
class java.lang.reflect.Field2181229005
class [Ljava.util.Hashtable$Entry;644185440
class [Ljava.lang.Class;

 

 

其中:

 

[C is a char[]
[S is a short[]
[I is a int[]
[B is a byte[]
[[I is a int[][]

 

上面的输出中[C对象占用Heap这么多,往往跟String有关,String其内部使用final char[]数组来保存数据的。

 

constMethodKlass/ methodKlass/ constantPoolKlass/ constantPoolCacheKlass/ instanceKlassKlass/ methodDataKlass

与Classloader相关,常驻与Perm区。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值