【问题标题】:The memory of linux top command and the jconsole heap usage is so different [closed]linux top 命令的内存和 jconsole 堆使用情况如此不同[关闭]
【发布时间】:2016-06-07 03:12:24
【问题描述】:


它们显示的同一个程序的内存使用情况是多么的不同。 有没有其他东西会消耗内存?

【问题讨论】:

  • 堆只是 JVM 中的一个内存区域,仅仅使用了最大堆大小的 50%,并不意味着其他 50% 已释放给操作系统。看来您的最大堆为 3.0 GB,并且您在共享库、线程堆栈等中大约有 0.4 GB。也就是说,它对我来说看起来很正常。

标签: java linux jmx jconsole top-command


【解决方案1】:

它们显示的同一个程序的内存使用情况是多么的不同。有没有其他东西会消耗内存?

是的。 Java 在大块中分配其内存并在内部管理这些块(作为单个进程)。 linux top 命令仅将 JVM 视为一个整体(而不是内部内存使用情况)。为此,请使用 jconsole;它显示有多少可用内存(在 JVM 内)。

【讨论】:

    【解决方案2】:

    顺便说一句,您还可以从 OperatingSystemMXBean 获取 JVM 操作系统进程的总内存使用情况。

    【讨论】:

      猜你喜欢
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2021-12-28
      • 2013-05-05
      • 2016-04-23
      • 1970-01-01
      相关资源
      最近更新 更多