基于javadoc,它说不安全缓冲区可以与基于堆或直接的字节缓冲区一起使用。我读过这个link,它说如果数据将在 Java 领域使用,非直接缓冲区会更好。
给出使用 sbe-tool 的伪代码/场景:
//read data into a bytebuffer (direct/heap-based?)
//use an UnsafeBuffer to wrap the bytebuffer
//decode using sbe decoder
//log each attribute of the sbe message schema
使用基于堆的缓冲区还是直接缓冲区更好?使用unsafe buffer时,数据会不会穿越JNI/Java边界?
edit:aeron cookbook 提到不安全缓冲区是一个堆外固定大小的缓冲区。这是否意味着包装另一个堆外 ByteBuffer 的堆外固定大小缓冲区的性能会更高?