Недостающая память: размер молодого поколения включает в себя только одну область выживших
На кучи 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