JDK1.6 макет памяти - PullRequest
       11

JDK1.6 макет памяти

2 голосов
/ 27 марта 2012

Я использую JDK1,6. Я настраиваю Xmx = 2G, Xms = 2G, NewSize = MaxNewSize = 660 м

Я включаю многословный gc. Я вижу то, что я не осознаю:

PSYoungGen      total 608256K, used 32440K 
 eden space 540672K, 6% used 
 from space 67584K, 0% used 
 to   space 67584K, 0% used 

Согласно моей конфигурации, размер YoungGen составляет 675840 МБ. Потому что younGen = Eden + два пространства выживших,

Журнал GC говорит, что мой размер YoungGen = 608256K, а это не то, что я настроил. Также, если я добавлю пространство Eden и два пространства выживших, я получу 540672K + 67584K + 67584K = 675840K

что тоже неправильно.

Но Eden + 1 Survivor space = 540672K + 67584K = 675840K, что я настроил. Значит ли это, что YoungGen = Eden + 1 Survivor space? Я думаю, что есть два места для выживших, верно?

Пожалуйста, объясните мне.

благодарю вас

1 Ответ

1 голос
/ 28 марта 2012

Есть два пространства выживших, но только один используется в любой момент времени;объекты перемещаются назад и вперед из одного места выживших в другое каждый раз, когда происходит сборка мусора молодого поколения.Таким образом, ваше сконфигурированное пространство молодого поколения равно пространству рая плюс один пространств выживших;другой в основном просто накладные расходы.

...