堆内存分为Young Gen,Old Gen和PermGem。
在年轻人中,分配了一个伊甸园空间和两个幸存者空间。根据我们机器中的GC,一个幸存者空间应始终可用,以便当GC标记年轻一代(伊甸园空间+ 1幸存者空间)中已存在的参考(扫描)并升级它们时,可以存储下一个活动节点参考。老一代。
第一个问题是,这种理解是否正确?
如果是,在所有时间,Young Gen的某些部分将以1个幸存者空间的形式空置/可用。那么如何在GC Logs中看到年轻人已经满了(即GC被触发)或者是误导?这意味着GC日志中只显示可用的年轻内存。
如何分析堆内存已满,即OutOfMemory,当Young Gen的某些部分将始终具有一些空闲空间时,因此堆内存全存。
提前致谢。
答案 0 :(得分:0)
有两种GC集合
要阅读和分析GC日志,您可以参考How to read a verbose:GC output?
答案 1 :(得分:0)
假设您正在使用热点,那么使用-XX:+PrintGCDetails -XX:+PrintHeapAtGC
进行记录应该足够详细,以涵盖您感兴趣的所有内容。