我们使用 Eclipse 内存分析器进行 Java(Tomcat Web 应用程序)转储。结果饼图中的总堆显示为 86 Mb。同时,该 JVM 的堆限制设置为 1.5GB,我们看到 JVM 的总使用量上升到 2.8GB。
为什么偏差这么大?
最佳答案
请调用jmap -heap TOMCAT_PID
,您将看到当前的堆使用情况(eden、survivor spaces、old 和 perm)
另请注意,Java 的实际内存使用量是XMX + MaxPerm + XSS * threads 数。我建议您阅读有关 Java 中内存消耗的精彩文章: http://plumbr.eu/blog/why-does-my-java-process-consume-more-memory-than-xmx
关于java - 为什么 Java 内存转储分析器中的 Heap total 与内存设置和 JVM 使用总量不对应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312828/