我正在开发一个处理相当大的有效负载的Http服务器。由于Netty提供零拷贝,我想到使用Netty的零拷贝使用有效负载的零处理。但似乎Netty只提供vc.uctyItem = self.uctyItem;
但不提供transferTo(WritableByteChannel target, long position)
方法直接将内容读入文件。
这是它的方式还是有任何变通方法?感谢。
答案 0 :(得分:4)
Netty 4.0.28+在使用splice时提供the native epoll transport支持。在proper setup之后,您handler中的channel.spliceTo(fileDescriptor, 0, data.length);
来电即可。请注意,这仅适用于Linux。
答案 1 :(得分:2)
Netty频道不提供将入站流量零复制到文件中的操作。或者,您可以从其事件循环中取消注册Netty通道,将零复制到文件中,然后将其重新注册到事件循环。但是,这是相对昂贵的操作,因此取消注册/重新注册开销可能会取消其收益。