проверьте, способствует ли метод памяти permgen - PullRequest
1 голос
/ 27 марта 2012

Я борюсь с ошибкой утечки памяти permgen. У меня очень ограниченные возможности проверки работающей системы, поэтому я вынужден бродить по исходному коду. Чтобы уменьшить область поиска, я хочу найти только методы, которые (вероятно) потребляют память из области permgen.

например. У меня есть корневой метод, который определенно вызывается. Из этого набора мне нужно найти путь к методам, которые, вероятно, потребляют память из области permgen (т.е. вызывается String.intern () и т. Д.). В настоящее время я сталкиваюсь с двумя проблемами: как определить, использует ли метод пространство permgen, и второй - как пройти через байт-код, чтобы следовать пути выполнения?

Спасибо заранее, любая информация ценится!

1 Ответ

2 голосов
/ 28 марта 2012

Лучшим подходом было бы взять дамп памяти и затем использовать Eclipse Memory Analyzer , чтобы выяснить, какие определения классов и строки занимают место в области PermGen.

Вы также можете добавитьследующие флаги -XX: + CMSClassUnloadingEnabled -XX: + CMSPermGenSweepingEnabled для включения прокрутки области PermGen.

...