Что на самом деле означает PermGen?



Я знаю, что такое PermGen, для чего он используется, почему он терпит неудачу, как его увеличить и т. д.



Я не знаю, что на самом деле означает PermGen. Постоянный... Поколения... что-то?



кто-нибудь знает, что на самом деле означает PermGen?

405   8  

8 ответов:

Постоянной Генерации. Детали, конечно, специфичны для реализации.

кратко, он содержит объекты Java, связанные с классами и интернированными строками. В реализации клиента Sun с общим доступом,classes.jsa отображается память для формирования исходных данных, с примерно половиной только для чтения и половиной копирования на запись.

объекты Java, которые являются просто старыми, хранятся в арендованном поколении.

PermGen используется JVM для хранения загруженных классов. Вы можете увеличить его с помощью:

-XX:MaxPermSize=384m

Если вы используете Sun JVM или OpenJDK.

поэтому, если вы получаете OutOfMemoryException: PermGen вам нужно либо сделать PermGen больше, либо у вас могут быть проблемы с загрузчиком классов.

Постоянной Генерации. Смотрите java руководство по настройке GC для получения более подробной информации о сборщике мусора.

не очень связанный матч с исходным вопросом, но может быть кто-то найдет его полезным. PermGen-это действительно область в памяти, где Java используется для хранения своих классов. Так, многие из нас сталкивался с нехваткой памяти в PermGen, если там были, например много классов.

начиная с Java 8, область PermGen была заменена областью MetaSpace, которая является более эффективной и неограниченной по умолчанию (или точнее-ограниченной объемом собственной памяти, в зависимости от 32 или 64 бит jvm и ОС доступность виртуальной памяти). Однако его можно настроить несколькими способами, например, указав максимальный предел для области. Вы можете найти более полезную информацию в этот блог.

PermGen означает Постоянный.

вот краткое объявление в коробке

Если я правильно помню, ген означает поколение, как в поколенческом сборщике мусора (который обрабатывает более молодые объекты иначе, чем объекты среднего возраста и "постоянные" объекты). Принцип локальности предполагает, что недавно созданные объекты будут уничтожены в первую очередь.

Permgen стоит для постоянного поколения. Это одна из областей памяти JVM. Это часть кучи с фиксированным размером с помощью флага под названием MaxPermSize.

Почему название "PermGen" ?

этот пермген был назван в первые дни Java. Электрическая сеть Permgen сохраняет все мета-данные загруженные классы. Но проблема в том, что как только класс загружен, он останется в JVM до завершения работы JVM. Так что имя permgen-это выбор для этого. Но позже, динамично загрузка классов вошла в картину, но название не было изменено. Но с Java 8, они также рассмотрели этот вопрос. Сейчас permagen была переименована в MetaSpace с динамическим объемом памяти.

Comments

    Ничего не найдено.