Доброе Утро.Изучаю Модель памяти.И как я понел в стаке есть методы которые держут ссылки на обьекты внутри хипа ,но помимо хипа есть и meta раздел .Про него немогу ниче понять чем не устраивал хип и стак также ссылается на meta ?
Кратко
Код и метаданные классов (имя, родительский класс, списки полей и методов).
Подробно
Память в Java делится на несколько областей, предназначенных для хранения разных типов данных. В heap (который также делится на несколько областей, подробнее - в любой статье по сборке мусора в Java) хранятся создаваемые объекты. В стеке - ссылки на объекты в heap и значения примитивных типов (int
, float
и т. д.), которые видны из текущей точки выполнения. А в Metaspace (до Java 8 - в Permanent Generation) хранится код и метаданные классов. Под них выделили отдельную область памяти, потому что, в отличие от других объектов, они неизменяемые, а значит, можно провести ряд оптимизаций как по хранению и доступу к ним, так и по сборке мусора. До Java 5 в Permanent Generation сборка мусора по умолчанию не проводилась, однажды загруженный виртуальной машиной класс не выгружался до конца работы программы. В Java 7 Permanent Generation подвергался сборке мусора по умолчанию, в рамках full GC. На заре развития Java, когда не было динамической загрузки классов во время выполнения, это был обоснованный подход, но с течением времени он изжил себя. Например, при редеплое приложения на сервере Java EE в Permanent Generation оставались классы старой версии приложения, что быстро приводило к OutOfMemoryError: PermGen space
. Начиная с Java 8 Permanent Generation заменён на Metaspace. Принципиальное различие между ними заключается в том, что Metaspace автоматически расширяется по мере наполнения. Теперь получить ошибку OutOfMemoryError: PermGen space
(точнее её аналог OutOfMemoryError: Metaspace
) становится сложнее. Без явного указания опции -XX:MaxMetaspaceSize
Metaspace будет расширяться до тех пор, пока есть свободная память.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как исправить код, чтобы корректно отправляло "form-data":
Когда делаю скрин dom-to-image все нормально, но не во всех браузерах работаетПытаюсь добавить html2canvas, чтобы скрины делать отдельно для safari, но они...