我正在使用Netty来进行大文件上传。虽然一切正常,但是客户端使用的RAM似乎随着文件大小而增加。这不是预期的行为,因为所有内容都从读取源文件到写入目标文件都是通过管道传输的。
起初,我考虑过一种自适应缓冲区增长方式,直到达到Xmx,但是将Xmx设置为合理值(50M)后,很快就会出现OutOfMemoryError。
经过一些使用Eclipse Memory Analyzer的研究,发现保留堆内存的对象是:
起初,我考虑过一种自适应缓冲区增长方式,直到达到Xmx,但是将Xmx设置为合理值(50M)后,很快就会出现OutOfMemoryError。
经过一些使用Eclipse Memory Analyzer的研究,发现保留堆内存的对象是:
org.jboss.netty.channel.socket.nio.NioSocketChannel$WriteRequestQueue
是否有设置此队列限制的选项,或者我需要使用ChannelFutures编写自己的队列来控制字节数并在达到限制时阻塞管道?
谢谢您的帮助,
祝好,
Renaud