在Netty中是否有类似于零拷贝的transferFrom功能



我正在开发一个处理相当大的有效负载的Http服务器。由于Netty提供了零复制,所以我考虑使用Netty的零复制来使用负载的零复制。但似乎Netty只提供transferTo(WritableByteChannel target, long position),而不提供transferFrom()这样的方法直接读取内容到一个文件。

这就是它的方式还是有其他解决方法?谢谢。

Netty 4.0.28+在使用本地epoll传输时提供了拼接支持。经过适当的设置,channel.spliceTo(fileDescriptor, 0, data.length);调用在你的处理程序将做的伎俩。注意,这只适用于Linux。

Netty通道不提供将入站流量零拷贝到文件中的操作。或者,您可以将Netty通道从其事件循环中注销,对文件进行零复制,然后将其重新注册到事件循环中。然而,这是一个相对昂贵的操作,因此它的增益可能会被取消注册/重新注册的开销所抵消。

最新更新