Когда вы запускаете JVM, ГДЕ он выделил PERM GEN? Является ли он частью основного HEAP или является дополнением к размеру HEAP.
например, если я использую следующие параметры:
-server -Xms10G -Xmx10G -XX:MaxPermSize=1536M
Будет ли общий размер Java 6 ГБ + 512 МБ или 6,5 ГБ для Java, или это настройка генерации разрешающей способности внутри HEAP, означающая, что у всех запущенных приложений будет 6 ГБ - 512 М = 5,5 МБ для молодых / арендованных (также известный как OLD). ) а пермский?
Этот рисунок в 4. Размеры поколений, по-видимому, подразумевает, что он может быть за пределами HEAP, но я не могу найти некоторые, которые бы точно указывали.
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
Глядя на выходные данные jstat, может показаться, что они будут находиться за пределами основного HEAP, но это может быть именно так, как об этом сообщается.
[jboss@pts03-taps-03 ~]$ jstat -gccapacity PID
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
85184.0 85184.0 85184.0 8512.0 8512.0 68160.0 10400576.0 10400576.0 10400576.0 10400576.0 21248.0 1572864.0 1387840.0 1387840.0 431 43
OGCMX = 10400576.0 (almost 10G OLD GEN)
NGCMX = 85184.0 (OGCMX + NGCMX = very close to 10G NEW GEN)
PGCMX = 1572864.0 (1.5G PERM GEN)
Если возможно, предоставьте ссылку на документацию, подтверждающую, что вы правы.