Я пытаюсь отследить утечку памяти в моем веб-приложении, которая приводит к заполнению пространства PermGen и выбрасывает размер OutOfMemoryError: PermGen после нескольких перезагрузок. Теперь я знаю, что могу просто остановить / запустить весь экземпляр Tomcat, но я пытаюсь найти причину утечки памяти.
Я прочитал эту статью http://java.dzone.com/articles/memory-leak-protection-tomcat, которая указывает, что я должен убедиться, что после остановки моего приложения не должно быть никаких выдающихся ссылок на WebappClassLoader, что предотвратит его сборку мусора. Используя YourKit и Memory Analyzer, я обнаружил несколько случаев, когда это происходило в сторонних библиотеках, и исправил их.
Сейчас я нахожусь в точке, где оба инструмента сообщают, что «путей от корней GC к объекту (WebappClassloader)» нет, но WebappClassloader по-прежнему не является сборщиком мусора! Кто-нибудь сталкивался с чем-то подобным раньше?
Я использую Tomcat 6.0.32