@Override
    public void free() {
        if (ignoreFree) {
            return;
        }
        if (buffer == EmptyByteBuffer) {
            return;
        }
        ByteBufferUtil.free(buffer);
        buffer = null;
    }
This method is mean to free the allocated memory this instance held, especially the DirectByteBuffer.

Altough the GC will automatically free the memory before the instance is reclaimed,
call free() before a ByteSlice dropped is a good manner which can really help save memory.
indexr-common/src/main/java/io/indexr/io/ByteSlice.java