"jmap -histo pid" 到底打印了什么
What does "jmap -histo pid" print exactly
我正在使用命令 "jmap -histo pid",想知道它到底在告诉我什么。
输出类似于:
num #instances #bytes class name
----------------------------------------------
1: 2284437 262114728 [C
2: 686409 124390432 [B
3: 363878 46799288 <constMethodKlass>
4: 363878 46590464 <methodKlass>
5: 1817209 43613016 java.lang.String
6: 34590 37296528 <constantPoolKlass>
7: 296302 36673344 [I
8: 34585 33237656 <instanceKlassKlass>
9: 248731 21559504 [Ljava.lang.Object;
10: 28200 19991872 <constantPoolCacheKlass>
11: 563323 13519752 scala.collection.immutable.$colon$colon
12: 26813 13103488 <methodDataKlass>
13: 506968 12167232 scala.collection.immutable.HashSet$HashSet1
14: 200750 10371320 [Lscala.collection.immutable.HashSet;
15: 114268 9477096 [Lscala.collection.immutable.HashMap;
16: 92405 7392400 java.lang.reflect.Method
17: 200953 6430496 scala.collection.immutable.HashMap$HashMap1
例如:"bytes" 究竟显示了什么?
- 是否是该类型每个实例的平均大小
- 它是自应用程序启动以来创建的所有对象的总大小
- 是否是所有对象堆中当前分配的大小
也许有人可以向我解释什么是“#instances”。
这是按对象 class 分组的当前 Java 堆内容的摘要。
#instances
是Java堆中给定class(可达和不可达)的对象总数;
#bytes
是当前驻留在 Java 堆中的给定 class 的对象的总浅表大小(即它们使用了多少内存,而不是使用了多少内存他们引用的对象)
#bytes / #instances
将是给定 class. 对象的平均大小
我正在使用命令 "jmap -histo pid",想知道它到底在告诉我什么。
输出类似于:
num #instances #bytes class name
----------------------------------------------
1: 2284437 262114728 [C
2: 686409 124390432 [B
3: 363878 46799288 <constMethodKlass>
4: 363878 46590464 <methodKlass>
5: 1817209 43613016 java.lang.String
6: 34590 37296528 <constantPoolKlass>
7: 296302 36673344 [I
8: 34585 33237656 <instanceKlassKlass>
9: 248731 21559504 [Ljava.lang.Object;
10: 28200 19991872 <constantPoolCacheKlass>
11: 563323 13519752 scala.collection.immutable.$colon$colon
12: 26813 13103488 <methodDataKlass>
13: 506968 12167232 scala.collection.immutable.HashSet$HashSet1
14: 200750 10371320 [Lscala.collection.immutable.HashSet;
15: 114268 9477096 [Lscala.collection.immutable.HashMap;
16: 92405 7392400 java.lang.reflect.Method
17: 200953 6430496 scala.collection.immutable.HashMap$HashMap1
例如:"bytes" 究竟显示了什么?
- 是否是该类型每个实例的平均大小
- 它是自应用程序启动以来创建的所有对象的总大小
- 是否是所有对象堆中当前分配的大小
也许有人可以向我解释什么是“#instances”。
这是按对象 class 分组的当前 Java 堆内容的摘要。
#instances
是Java堆中给定class(可达和不可达)的对象总数;#bytes
是当前驻留在 Java 堆中的给定 class 的对象的总浅表大小(即它们使用了多少内存,而不是使用了多少内存他们引用的对象)#bytes / #instances
将是给定 class. 对象的平均大小