add ByteBufferAllocator for greatly decrease memory consumption