jmap中显示的 "From Space "和 "To Space "是什么意思?

问题描述 投票:13回答:2

我知道新基因和旧基因的区别,但我不知道 "To Space "和 "From Space "是什么。我看到我的 "From Space "达到99.8%的使用率,而 "To Space "似乎总是保持在0%的使用率。

java memory garbage-collection heap jmap
2个回答
12
投票

虚拟机中使用的垃圾收集算法中的两个区域。

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"。


0
投票

不同的资料用不同的术语来称呼这些。这些是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的意思。

© www.soinside.com 2019 - 2024. All rights reserved.