Troubleshooting Problems With Native (Off-Heap) Memory in Java Applications
quite good advice on dealing with memory problems caused by off-heap DirectByteBuffers in java 8. ‘Furthermore, the JDK caches one or more DirectByteBuffers per thread, and by default, there is no limit on the number or size of these buffers. As a result, if a Java app creates many threads that perform I/O using HeapByteBuffers, and/or these buffers are big, the JVM process may end up using a lot of additional native memory that looks like a leak’. ‘java.lang.OutOfMemoryError: Direct buffer memory’ is the indicative error message.
(tags: java off-heap buffers memory memory-leaks gc jdk ops)