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

时间:2013-02-27 21:11:35

标签: java memory garbage-collection heap jmap

我理解新/ gen / perm gen之间的区别,但我不知道“To Space”和“From Space”是什么。我看到我的“From Space”使用了99.8%,而“To Space”似乎总是保持0%使用。

2 个答案:

答案 0 :(得分:11)

VM中使用的垃圾收集算法中的两个区域。

Java详细信息可在此处找到:How Garbage Collection works in Java

关于“从太空”和“到太空”的一般解释:WP

  

最直接的方法是半空间收集器,可追溯到1969年。在这个移动的GC方案中,内存被划分为“from space”“to space”< / strong>即可。最初,对象被分配到“空间”,直到它们变满并触发集合。在集合开始时,“to space”变为“from space”,反之亦然。从根集可到达的对象将从“从空间”复制到“到空格”

你的“空间”为0%的原因是,除了收集期间,只使用其中一个;当集合完成并且所有obj都在“to space”中时,名称将被交换,“to space”现在被称为“from space”。

答案 1 :(得分:0)

不同的来源使用各种术语来引用这些资源:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html

中解释了这些是幸存者的“乒乓”空间。

另一个地方称它们为S0和S1:https://codeahoy.com/2017/08/06/basics-of-java-garbage-collection/

JDK的jmap实用程序将它们称为“从太空”和“到太空”。

P.S。 “ PS Old Generation”中的PS代表Parallel Scavenge