Java内存使用情况细分-本机库(DLL)使用情况

Java内存使用情况细分-本机库(DLL)使用情况,java,memory,memory-leaks,Java,Memory,Memory Leaks,我的Java程序占用了大量内存~3GB,我已经设置了xmx300MB。此外,不同的工具报告不同的内存使用情况 jcmd:576MB 任务管理器:967MB 资源监视器:3478MB 当我关闭程序任务管理器时,显示内存使用量下降了大约3GB。我的问题是,我怎样才能看到是什么在使用这个内存?由于jcmd的输出,它似乎不是java。我怀疑它可能是我的Java程序正在使用的DLL。这里有可以使用的工具吗?这里有一个 您可以首先通过使用-XX:NativeMemoryTracking=summary(或

我的Java程序占用了大量内存~3GB,我已经设置了xmx300MB。此外,不同的工具报告不同的内存使用情况

jcmd:576MB

任务管理器:967MB

资源监视器:3478MB

当我关闭程序任务管理器时,显示内存使用量下降了大约3GB。我的问题是,我怎样才能看到是什么在使用这个内存?由于jcmd的输出,它似乎不是java。我怀疑它可能是我的Java程序正在使用的DLL。这里有可以使用的工具吗?

这里有一个

您可以首先通过使用
-XX:NativeMemoryTracking=summary
(或
detail
)启用本机内存跟踪来确认您的怀疑,然后使用
jcmd VM.Native_Memory
重新检查以验证它不是Java进行本机内存分配

如果在
本机内存跟踪
部分下看不到一大块明显的内存,那么您将离开Java领域,必须尝试“JVM外部的本机内存泄漏”中列出的工具(jemalloc、valgrind、Purify等)