У меня есть утечка памяти, которую я изолировал от неправильно расположенных прямых байтовых буферов.
ByteBuffer buff = ByteBuffer.allocateDirect(7777777);
GC собирает объекты, которые содержат эти буферы, но не избавляется от самого буфера. Если я создаю достаточно много временных объектов, содержащих буферы, я получаю это обнадеживающее сообщение:
java.lang.OutOfMemoryError: Direct buffer memory
Я искал эту проблему и, видимо,
buff.clear();
а также
System.gc();
не работай.