Java 7中的内核旁路?

3

我在 Stack Overflow 的几条评论中看到 Java 7 支持内核绕行。但是,当我搜索这个主题时,我没有看到任何关于此的直接示例。

有人有 Java 7 执行内核绕行的示例吗?我很想看看它。

3个回答

3
这个相关问题的答案提到了SolarFlare有Java绑定:Networking with Kernel Bypass in Java。就Java 7来说,在核心库中没有支持这种功能的方法。内核旁路对于包含标准API的系统/供应商来说过于具体化。你可以通过其他方法来提高Java的网络吞吐量,而不涉及内核旁路。例如,使用NIO缓冲区和通道API等。然而,你典型的Java“框架”往往会妨碍这一点,因为它只向“应用程序”代码公开流/读取器和其他高级I/O抽象。另外,如果你的应用程序中网络延迟和吞吐量非常重要,值得采用内核旁路技术,那么我认为你应该使用更接近底层的编程语言。Java适合处理应用程序复杂度是最大问题的应用,而不是快速传输大量数据的网络应用。

1

0

内核旁路是一种在读/写外部数据源(如文件或网络)时避免内核的方法。

相反,您可以直接访问数据存储而不让所有字节通过操作系统内核。这通常更快但也不太安全,因为整个过程不再由操作系统监督。

假设: 关于Java,内核可能代表JVM

我在此找到了一篇非常好的文章


绕过内核直接访问文件系统似乎是一个非常糟糕的想法。这听起来像是损坏文件系统的好方法... - Stephen C
@StephenC 我可能不会使用 内核绕过,但对于需要非常高性能的应用程序来说,它可能很有用。 - poitroae

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接