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