小编Cor*_*ker的帖子

将io.netty.buffer.ByteBuf转换为java.nio.ByteBuffer的有效方法

我遇到了这个问题:在Netty 4.0中创建一个关于从byte []到ByteBuf和ByteBuffer到ByteBuf的转换的ByteBuf.我很想知道转换的另一种方式:

io.netty.buffer.ByteBuf到java.nio.ByteBuffer

以及如何有效地进行,最小/无复制?我做了一些阅读,经过一些试验和错误,我找到了这种转换它的低效方式(有两个副本):

// io.netty.handler.codec.http.FullHttpRequest fullHttpRequest;
ByteBuf conByteBuf = fullHttpRequest.content ();                  
int numReadBytes = conByteBuf.readableBytes ();
conBytes = new byte[numReadBytes];
conByteBuf .readBytes (conBytes);                                // First Copy
ByteBuffer conByteBuffer = ByteBuffer.allocate (conBytes.length);
conByteBuffer.put (conByteBuf);                                  // Second Copy
Run Code Online (Sandbox Code Playgroud)

我的问题是,我们可以避免一个或两个副本,并使ByteBuffer的内部缓冲区使用ByteBuf的内部缓冲区.

谢谢!

java bytebuffer netty

10
推荐指数
2
解决办法
8293
查看次数

标签 统计

bytebuffer ×1

java ×1

netty ×1