Как вы проектируете хорошую строку permgen space в Java? - PullRequest
1 голос
/ 04 октября 2008

Мне интересно, как бы вы разработали хорошую строку permgen space в Java. Основываясь на своих исследованиях и понимании, я пришел к следующему:

пример: JAVA_OPTS='-Xmx512m -XX:MaxPermSize=256m -server -Djava.awt.headless=true'

Извините, пример не вставлен, когда я впервые опубликовал вопрос ......

1 Ответ

5 голосов
/ 04 октября 2008

Мне также немного неясно по этому вопросу, но если вы имеете в виду, какое число лучше использовать для максимального размера permgen, оно будет зависеть от вашего приложения и количества загруженных классов / методов. Чтобы помочь определить их, вы можете запустить ваше приложение с его типичными и наиболее интенсивными вариантами использования и использовать JConsole и посмотреть, что ваше приложение фактически использует.

JConsole может отображать все ваши кучи и пространство постоянного генерирования, чтобы вы могли таким образом определить, какое число требуется для MaxPermSize. Поскольку это данные класса + метод, он будет зависеть от того, сколько классов загружает ваше приложение, а не сколько экземпляров. Обратите внимание, что он также отделен от размера кучи (и фактически JConsole классифицирует использование памяти как использование памяти без кучи). На странице JConsole, которую я связал, см. Рис. 5. Это самая правая не куча, и на нее можно щелкнуть.

В Java 6 приложения будут разрешать соединения из JConsole без дополнительной настройки. В Java 5 может потребоваться установить некоторые флаги. Он входит в комплект поставки JDK.

Для справки, для приложения, в котором загружено ~ 10 000 классов, наш MaxPermSize составляет 96 м

...