java - 就性能而言, `java.net` 和 `java.nio` 的替代方案是什么?

标签 java performance networking io nio

我正在寻找比标准 Java 网络库更持久的 HPC 网络库。

我已查看netutilsRockSaw但不确定它们是否还被维护。他们背后也没有太多社区。

最佳答案

有很多选择,但这取决于您的要求。

我建议使用内核旁路适配器来实现低延迟,这会导致当前的库受到支持,改变的是硬件(及其驱动程序),而不是库。

如果您担心吞吐量,任何系统都应该能够充分利用 1 Gb 线路,并且您可以使用 10 Gb 线路并对软件进行一些调整(同样,另一个库也无济于事)

额外的库帮助的是较低级别的访问,例如数据包嗅探、不支持发送/接收数据包类型。

库可以提供帮助的地方是处理大量连接。 Plain IO 可以相当轻松地处理超过 1000 个连接,NIO 可以处理超过 10K 连接,但如果您需要 100K 连接,它可能会很困难。如果您需要超过 100 万个连接,您很可能需要一个自定义 C 库。在这一点上,我建议拥有更多的机器,因为你无法为每个用户使用百万分之一的机器做太多事情。

简而言之,如果您想要高性能,请首先查看您的硬件,然后再查看支持它的软件。仅更改软件不太可能产生太大影响。

如果您想联系我,最好的方法是在 Performance Java User's Group 上查找我。 .

关于java - 就性能而言, `java.net` 和 `java.nio` 的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606245/

相关文章:

java - diver.findElements 在 Selenium 中被挂起

使用 SAX 解析器验证 XSD 时出现 java.security.AccessControlException

mysql - 在循环中运行 SQL count(*) 查询或尝试将其合并到父查询中是否更快?

objective-c - 存储对象数组或在需要时创建?

java - 为什么连接终止时不抛出异常?

java - 如何旋转绘图面板中绘制的一系列线条和形状?

java - 在 Guice 的模块配置中关联 FXML 和 Controller

java full gc 花费的时间太长

java - 将 UDP 与 NIO 一起使用有什么意义?

networking - VirtualBox端口转发不适用于NAT适配器