寻找一个;“一切都在缓冲吗?”;在java-决定与Netty合作 一些背景:
我正在开发一些java软件包,这些软件包需要获取数据,对数据进行分割并在线分发到许多服务器。根据用户代码(使用我的包的人),我将知道使用哪种缓冲区。我已经看到了Netty项目,它有一些有趣的概念和网站上建议的其他解决方案,但这并不完全是我想要的。我想我可以实现我的需求,但我更喜欢重用 实际问题:字节缓冲区要求 将实现与接口分开。 在两个实现之间进行更改 固定尺寸:寻找一个;“一切都在缓冲吗?”;在java-决定与Netty合作 一些背景:,java,buffer,nio,Java,Buffer,Nio,我正在开发一些java软件包,这些软件包需要获取数据,对数据进行分割并在线分发到许多服务器。根据用户代码(使用我的包的人),我将知道使用哪种缓冲区。我已经看到了Netty项目,它有一些有趣的概念和网站上建议的其他解决方案,但这并不完全是我想要的。我想我可以实现我的需求,但我更喜欢重用 实际问题:字节缓冲区要求 将实现与接口分开。 在两个实现之间进行更改 固定尺寸: 直接内存使用 分发上的零拷贝IO 成长型 可以长到一定的尺寸 在重新分配和内存使用量之间保持平衡 更新1:由于许多其他好处,决定使用
我将很好地了解直接字节缓冲区阵列上的分散/聚集NIO。direct ness不提供拷贝I/O,而阵列提供了增长机制。我发现它为我提供了所有需要的东西,还有更多 直接分配的字节缓冲区池(即传递/使用列表)。尽管如此,我不确定“发行版上的零拷贝IO”是什么意思:(不幸的是ByteBuffer本身是一个密封类,不符合公共接口…所以为什么不只是Netty拥有的任何东西呢?据我所知,Netty支持“无止境的”缓冲区。我想限制我的用户。零拷贝意味着避免为了发送缓冲区而复制太多缓冲区,Netty很适合这样做。