Я получаю ошибку пространства PermGen на Sun JVM (1.6.0_21-b06) (хорошо, это Oracle :)).Увеличение параметра -XX: значение MaxPermGen не помогает.Я знаю, что PermGen - это пространство, предназначенное для постоянных объектов, таких как метаданные класса.Количество классов в проекте не так велико ~ 10 000. Перед сбоем jvisualvm показывает 57MB как Used PermGen.
Я предполагаю, что какой-то алгоритм занимает всю доступную память.Кто-нибудь знает примеры алгоритмов, которые приводят к переполнению PermGen?
UPD. Я задаю такой абстрактный вопрос, потому что в данный момент я не могу использовать какой-либо профилировщик - код падает так сильно, что jvisualvmзатмение перестать отвечать.Мне нужно, чтобы убить процессы Java из терминала с помощью kill -KILL {process_numer}.Я работаю с плохо организованным (но коммерческим) кодом, который имеет много потоков и сообщений JMS.Отладка - это беспорядок - сначала нужно понять, где искать.