我知道有很多方法可以对一个Java进程进行堆转储,但是我想知道这些数据是如何收集的。换句话说,当触发转储时,JVM中的哪个组件提供此堆数据。
aoyhnmkz1#
一般来说,像“jmap”这样的工具与不属于Java公共API的组件进行通信:sun.jvm.hotspot.*软件包中的内容。
sun.jvm.hotspot.*
如果您想了解这些血淋淋的细节,请下载OpenJDK源代码(选择任意版本),找到JMap.java文件,然后开始阅读。
JMap.java
1条答案
按热度按时间aoyhnmkz1#
一般来说,像“jmap”这样的工具与不属于Java公共API的组件进行通信:
sun.jvm.hotspot.*
软件包中的内容。sun.jvm.hotspot.*
中的各种类从JVM进程地址空间或核心转储中提取信息。如果您想了解这些血淋淋的细节,请下载OpenJDK源代码(选择任意版本),找到
JMap.java
文件,然后开始阅读。