Java jmap-历史与文化部;堆操作会给jvm带来开销吗?

Java jmap-历史与文化部;堆操作会给jvm带来开销吗?,java,jvm,jmap,Java,Jvm,Jmap,正如标题所述,jmap-histo和jmap-heap分别给jvm带来了多少开销 如果对内存敏感的Java进程位于OutOfMemory的边缘(例如,大约96%的堆已满,无法通过完整gc清除),其中一个操作是否可能将jvm移出内存?jmap-histo和jmap-heap的工作方式不同:jmap-histo使用动态附加机制,jmap-heap通过热点服务性代理工作。对差异进行了描述 因此,jmap-histo由JVM本身执行,但是jmap-heap在JVM进程挂起时在工具进程中运行。在这两种情况

正如标题所述,
jmap-histo
jmap-heap
分别给jvm带来了多少开销


如果对内存敏感的Java进程位于
OutOfMemory
的边缘(例如,大约96%的堆已满,无法通过完整gc清除),其中一个操作是否可能将jvm移出内存?

jmap-histo
jmap-heap
的工作方式不同:
jmap-histo
使用动态附加机制,
jmap-heap
通过热点服务性代理工作。对差异进行了描述

因此,
jmap-histo
由JVM本身执行,但是
jmap-heap
在JVM进程挂起时在工具进程中运行。在这两种情况下,都不会创建新的Java对象,该工具不会导致
OutOfMemoryError


在这两种情况下,应用程序线程都被停止:
jmap-histo
停止Java线程,
jmap-heap
停止整个JVM进程。暂停的持续时间可能相当长,尤其是对于大堆。例如,遍历4GB堆可能需要几秒钟。

知道这种方法是否具有相同的影响吗?@andyfeller
jcmd GC。class_直方图
的工作原理与
jmap-histo