【发布时间】:2010-02-24 08:25:30
【问题描述】:
我想知道某个时间 Java 进程使用的总堆大小是多少,我必须使用 jmap。
jmap -heap <pid> 的输出给了我这样的信息:
我可以使用这些值的公式来找出使用的总内存吗?
欢迎提出其他关于如何在 Linux 上找到此问题的建议,但 jmap 比他们更受欢迎。
谢谢
【问题讨论】:
我想知道某个时间 Java 进程使用的总堆大小是多少,我必须使用 jmap。
jmap -heap <pid> 的输出给了我这样的信息:
我可以使用这些值的公式来找出使用的总内存吗?
欢迎提出其他关于如何在 Linux 上找到此问题的建议,但 jmap 比他们更受欢迎。
谢谢
【问题讨论】:
如果你想与 jconsole 或 jvisualvm 之类的东西进行比较,主窗口显示“总堆使用量”,我发现通过添加“使用的伊甸园空间”和“使用的 ps 老一代空间”我得到了相当于上述程序中该图显示的内容——这就是我现在倾向于继续的内容。
【讨论】:
Heap Usage: 下的条目列出了 JVM 中的各种分区内存池,以及它们的最大大小、已用空间和可用空间。您可以将各种 used: 值相加,这应该会为您提供总内存使用量的合理值,尽管列出的池中可能没有考虑一些 JVM 开销。
【讨论】:
jmap -heap:format=b <pid> 并使用 Eclipse 的内存分析工具解析堆转储文件,我总共使用了 22Mb。我找不到获得相同总值的方法...