Читаю про JVM тюнинг и GC и в разных источниках пишут что PermGen является частью Heap, в других пишут что нет.
Кому верить и как на самом деле?
Здравствуйте, avpavlov, Вы писали:
A>PermGen не может заимствовать память из Heap. Память выделенная PermGen не влияет на размер памяти, выделенной Heap.
Технически PermGen space это часть Heap — общей кучи управляемой Java. Но логически это очень отдельное поколение, которое конфигурируется и управляется индивидуально и очень слабо связано со сборкой в остальных поклениях. Тем неменее там тоже есть сборка мусора, которая во многом подчиняется тем же правилам что и в остальной куче.
Во всех доках это пространство определаяется как отдельное поколение
внутри кучи.
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
http://www.oracle.com/technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdf
http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
В Java 8 PermGen space отсутствует.
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, avpavlov, Вы писали:
A>>PermGen не может заимствовать память из Heap. Память выделенная PermGen не влияет на размер памяти, выделенной Heap.
B>Технически PermGen space это часть Heap — общей кучи управляемой Java. Но логически это очень отдельное поколение, которое конфигурируется и управляется индивидуально и очень слабо связано со сборкой в остальных поклениях. Тем неменее там тоже есть сборка мусора, которая во многом подчиняется тем же правилам что и в остальной куче.
B>Во всех доках это пространство определаяется как отдельное поколение внутри кучи.
B>http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
B>http://www.oracle.com/technetwork/java/javase/tech/memorymanagement-whitepaper-1-150020.pdf
B>http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
Вот поэтому я и попытался ответить без использования слова "является".
Потому что, что чем является не так важно, важно как они между собой взаимодействуют.