С момента перехода на JRE 6, использование кеша кода сервера (не куча) продолжает расти бесконечно. Мое приложение создает много классов во время выполнения, НО эти классы успешно разгружаются во время процесса GC. Я вижу, что эти классы выгружаются в журналы gc, а использование permGen остается постоянным. Я специально убеждаюсь в своем коде, что эти классы сироты, когда я закончу их, и поэтому они правильно получают мусор, собранный из permGen.
Тем не менее кеш-код продолжает расти. Я только узнал о кеше кода после переключения на JRE 6. Поэтому я думаю, что мои вопросы:
- Включает ли GC кеш кода?
- Что может вызвать утечку памяти кэша кода, в частности.
- Есть ли ошибка в JDK 6 в этой области?