我知道新基因和旧基因的区别,但我不知道 "To Space "和 "From Space "是什么。我看到我的 "From Space "达到99.8%的使用率,而 "To Space "似乎总是保持在0%的使用率。
虚拟机中使用的垃圾收集算法中的两个区域。
Java的具体内容请看这里。垃圾回收在Java中是如何工作的
并对 "从太空 "和 "到太空 "做了一般性解释。WP
最直接的方法是半空间收集器,它可以追溯到1969年。在这种移动GC方案中,内存被划分为 "来自太空" 和 "到空间". 最初,对象被分配到 "to space "中,直到它们满了,一个集合被触发。在集合开始时,"to space "变成 "from space",反之亦然。可从根集到达的对象从 "from space "复制到 "to space"。
为什么你的 "to space "是0%,原因是,除了在收集过程中,只用了其中的一个;当收集完毕,所有的objs都在 "to space "中,那么名字就会被调换,现在的 "to space "叫做 "from space"。
不同的资料用不同的术语来称呼这些。这些是Survivor的 "乒乓 "空间,解释如下: https:/docs.oracle.comjavase8docstechnotesguidesvmgctuningsizing.html。
另一个地方称它们为S0和S1。 https:/codeahoy.com20170806basics-of-java-garbag-collection。
JDK的jmap工具把它们叫做 "From Space "和 "To Space"。
P.S. "PS老一代 "中的PS代表Parallel Scavenge的意思。