Heap Histogram
All Classes (excluding platform)
| Class | Instance Count | Total Size |
|---|---|---|
| class [I | 10295 | 74101376 |
| class [B | 37484 | 20206389 |
| class [C | 77031 | 9857592 |
| class [Ljava.lang.Object; | 18232 | 1935080 |
| class java.lang.String | 70031 | 1400620 |
| class [Ljava.util.HashMap$Entry; | 7156 | 1344856 |
| class java.lang.reflect.Method | 6986 | 901194 |
| class java.util.HashMap$Entry | 25634 | 717752 |
| class java.lang.Class | 4535 | 653040 |
| class [S | 9082 | 617178 |
| class java.nio.HeapByteBuffer | 9998 | 389922 |
| class java.nio.HeapCharBuffer | 9736 | 360232 |
| class [Ljava.lang.String; | 4306 | 330664 |
| class java.util.HashMap | 6454 | 309792 |
| class java.lang.reflect.Field | 2181 | 229005 |
| class [Ljava.util.Hashtable$Entry; | 644 | 185440 |
| 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区。
本文详细解析了HeapHistogram输出中关于Class对象占用内存的情况,特别是与String和Classloader相关的内存占用分析,揭示了String内部结构及其对Heap的影响,并探讨了Classloader在Perm区的常驻作用。

被折叠的 条评论
为什么被折叠?



