2013-09-23 2 views
6

В Java 6 мы привыкли использовать следующую конфигурацию GC для предотвращения Пермь Gen OutOfMemoryException после нескольких передислокации нашего приложения:Класс Выгрузка в G1 сборщика мусора в Java (G1GC)

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

Мы движемся к Java 7 и хотите использовать новый G1 GC, который из того, что я прочитал, перемещает классы из PermGen в память Java в родную память.

Есть ли какой-то флаг, позволяющий выгружать неиспользуемые классы?

ответ

7

G1 выполняет разгрузку классов во время полного GC, поэтому вам не нужно указывать какие-либо параметры, чтобы включить это.

Вы можете увидеть себя, используя аргумент -XX:+TraceClassUnloading.

Также проверьте эту тему электронной почты из списка рассылки HotSpot GC: Bug in G1GC it performs Full GC when code cache is full resulting in overkill. Они довольно подробно обсуждают разгрузку классов в G1. Таким образом, вы можете использовать -noclassgc, если вы видите проблемы с разгрузкой классов, но обычно нет проблем с разгрузкой классов в G1.

Смежные вопросы