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