Может ли быть утечка в Direct Memory / native memory в Java?

Да: память процесса Java не ограничивается heap. Direct buffers, native-библиотеки, thread stacks и другие области могут расти даже при стабильном Java heap.

Короткий ответ

Что ответить на собеседовании

Да: память процесса Java не ограничивается heap. Direct buffers, native-библиотеки, thread stacks и другие области могут расти даже при стабильном Java heap.

Подробный разбор

Ответ с пояснениями

Да: память процесса Java не ограничивается heap. Direct buffers, native-библиотеки, thread stacks и другие области могут расти даже при стабильном Java heap.

Сравните RSS, heap, BufferPoolMXBean и категории Native Memory Tracking, если NMT включён. При этом NMT не учитывает все выделения стороннего native-кода, поэтому его суммы не обязаны объяснять весь RSS. Ищите удерживаемые direct buffers и ресурсы без корректного освобождения. Маленький heap dump сам по себе не исключает утечку вне кучи.

Источник: docs.oracle.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее