"This momth's memory leak special covers JFR memory leak analysis and native memory leak analysis to add to the previous heap memory leak analysis special"
"ByteBuffer.allocate() (which creates a HeapByteBuffer) has memory allocated in the heap, while ByteBuffer.allocateDirect() (which creates a DirectByteBuffer) has memory allocated in native memory. If you use a HeapByteBuffer, OS I/O calls have to copy the data to and from the buffer; using a DirectByteBuffer allows the OS I/O calls to operate directly on the native buffer so copying can be avoided."