0
Java堆上,我預期的年輕一代的大小將是伊甸園空間和兩者的大小之和在生存空間(從空間和空間):缺少內存:年輕一代的尺寸只包括一個生存空間
[young gen size] = [eden space size] + [from space size] + [to space size]
然而,GC日誌(使用XX:+PrintHeapAtGC
)狀態,該年輕一代的大小是伊甸園空間和的大小之和只有生存空間之一:
[young gen size] = [eden space size] + [from space size]
爲什麼的大小年輕一代只包括一個倖存者空間的大小?
也許是因爲只有生存空間之一可用在任何時候?但倖存者空間存在所以這兩個倖存者空間應該貢獻的大小新一代?
GC日誌:
{Heap before GC invocations=48 (full 17):
par new generation total 943744K, used 891496K [0x000000073ae00000, 0x000000077ae00000, 0x000000077ae00000)
eden space 838912K, 100% used [0x000000073ae00000, 0x000000076e140000, 0x000000076e140000)
from space 104832K, 50% used [0x000000076e140000, 0x000000077149a040, 0x00000007747a0000)
to space 104832K, 0% used [0x00000007747a0000, 0x00000007747a0000, 0x000000077ae00000)
從中:
[young gen size] = [eden space size] + [from space size]
943744K = 838912K + 104832K