3

我阅读了一些关于 SO Java 7 支持内核绕过的评论。但是,在搜索该主题时,我没有看到任何直接的例子。

有没有人有 Java 7 执行内核绕过的示例?我有兴趣看看

4

3 回答 3

3

这个相关问题的答案提到 SolarFlare 具有 Java 绑定:Networking with Kernel Bypass in Java

就 Java 7 而言,核心库中并没有对这种东西的支持。内核绕过过于系统/供应商特定,无法包含在标准 API 中。

您可以做其他不涉及内核绕过的事情来提高 Java 中的网络吞吐量。例如使用 NIO Buffer 和 Channel APIs ...但是,您的典型 Java“框架”往往会阻碍这一点...仅将 Stream / Reader 和其他高级 I/O 抽象暴露给“应用程序”代码.


(我还认为,如果您有一个应用程序,其中网络延迟和吞吐量足够关键,以至于内核绕过是值得的,那么您应该使用“更接近金属”的编程语言。Java 更适合存在最大问题的应用程序是应用程序的复杂性...不是通过网络快速移动大量位。)

于 2013-04-04T22:59:50.163 回答
1

看看github上的Onload Extensions API JNI Wrapper 。作者似乎专门研究内核绕过

于 2017-09-12T19:57:36.667 回答
0

内核绕过是一种在读取/写入外部数据源(例如文件或网络)时避开内核的方法。

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

假设:关于 Java,kernel(可以)表示JVM.

我在这方面找到了一篇非常好的文章

于 2013-04-04T14:14:08.863 回答