Я знаю, что такое PermGen, для чего он используется, почему не работает, как его увеличить и т. Д.
Я не знаю, что на самом деле означает PermGen. Постоянно ... Ген ... что-то?
Кто-нибудь знает, что на самом деле означает PermGen?
Я знаю, что такое PermGen, для чего он используется, почему не работает, как его увеличить и т. Д.
Я не знаю, что на самом деле означает PermGen. Постоянно ... Ген ... что-то?
Кто-нибудь знает, что на самом деле означает PermGen?
Ответы:
Постоянное поколение. Детали, конечно, зависят от конкретной реализации.
Вкратце, он содержит объекты Java, связанные с классами и интернированными строками. В клиентской реализации Sun с включенным совместным использованием classes.jsa
память отображается для формирования исходных данных, причем половина из них предназначена только для чтения, а половина - для копирования при записи.
Просто старые объекты Java сохраняются в Tenured Generation.
PermGen используется JVM для хранения загруженных классов. Вы можете увеличить его, используя:
-XX:MaxPermSize=384m
если вы используете Sun JVM или OpenJDK.
Поэтому, если вы получаете OutOfMemoryException: PermGen, вам нужно либо увеличить PermGen, либо у вас могут возникнуть проблемы с загрузчиком классов.
Постоянное поколение. См. Руководство по настройке java GC для получения дополнительных сведений о сборщике мусора.
Не совсем соответствует исходному вопросу, но, возможно, кому-то это пригодится. PermGen - это действительно область памяти, где Java хранила свои классы. Итак, многие из нас встречали OOM в PermGen, если бы классов было, например, много.
Начиная с Java 8, область PermGen была заменена областью MetaSpace, которая более эффективна и по умолчанию не ограничена (или, точнее, ограничена объемом собственной памяти, в зависимости от 32- или 64-разрядной виртуальной памяти jvm и ОС). Однако можно настроить его некоторыми способами, например, указав максимальный предел для области. Вы можете найти более полезную информацию в этом сообщении блога .
PermGen означает постоянное поколение .
Пермген означает «постоянное поколение». Это одна из областей памяти JVM. Это часть кучи с фиксированным размером с помощью флага MaxPermSize.
Почему название «ПермГен»?
Этот перманент был назван на заре Java. Сеть Permgen хранит все метаданные загруженных классов. Но проблема в том, что как только класс загружен, он останется в JVM до выключения JVM. Так что имя permgen - это выбор для этого. Но позже появилась динамическая загрузка классов, но название не изменилось. Но в Java 8 они решили и эту проблему. Теперь пермаген был переименован в MetaSpace с динамическим размером памяти.