Что такое ClassLoader leak и как он проявляется?

Senior
224 просмотров
AFK Offer AI

ClassLoader удерживает все загруженные им классы и их static поля. Если ClassLoader не может быть GC собран — все классы и всё что они держат в памяти тоже. В Metaspace это приводит к OutOfMemoryError: Metaspace. Типично при hot redeploy в Tomcat: новое приложение создаёт новый ClassLoader, старый не собирается из-за утечки. Диагностика через MAT: смотреть ClassLoader instances и что их держит (обычно ThreadLocal или library с static полями).

Следующий вопрос

Что такое OpenAPI и как организовать Swagger в продакшен-проекте?