gpt4 book ai didi

java - 使用netty分配器为每个 channel 或每个请求创建bytebuf?

转载 作者:行者123 更新时间:2023-12-02 10:32:33 26 4
gpt4 key购买 nike

嗨,我有一个 netty 服务器来接受大量 tcp 连接。

阅读完文档后,

我不确定:

  1. 启动后我应该为每个 channel 分配一个bytebuf吗?

  2. 或者我应该为每个请求分配一个bytebuf?

在官方的例子中是这样写的,但是我感觉很奇怪,如果我为每个读操作创建bytebuf,那么这样做的目的是什么?

如果我为每个 channel 分配一个bytebuf,它会获得更多的性能优势吗?

 @Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ByteBuf buff = ctx.alloc().buffer();
buff.writeBytes(XX);
ctx.writeAndFlush(buff);
}

最佳答案

只要需要,您就会分配一个新的缓冲区,因为您并不知道何时可以自己重新使用该缓冲区。

也就是说,netty 默认使用 PooledByteBufAllocator,这意味着缓冲区是池化的,因此这里的分配并不是那么昂贵。

关于java - 使用netty分配器为每个 channel 或每个请求创建bytebuf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53530719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com