Да: память процесса Java не ограничивается heap. Direct buffers, native-библиотеки, thread stacks и другие области могут расти даже при стабильном Java heap.
Может ли быть утечка в Direct Memory / native memory в Java?
Да: память процесса 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.