【问题标题】:Java memory usage breakdown - native library (DLL) usageJava 内存使用细目 - 本机库 (DLL) 使用
【发布时间】:2021-07-22 13:47:21
【问题描述】:

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

jcmd:576MB

任务管理器:967MB

资源监视器:3478MB

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

【问题讨论】:

    标签: java memory memory-leaks


    【解决方案1】:

    这是toolset and instructions

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

    如果您在 Native Memory Tracking 部分下没有看到明显的大块,那么您将离开 Java 领域并且必须尝试“来自 JVM 外部的本机内存泄漏”中列出的工具(jemalloc、valgrind、净化等)。

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 2014-01-29
      • 2020-11-30
      相关资源
      最近更新 更多