6

有没有人知道如何在 Java 中绕过内核?任何你好世界,或者这是火箭科学?

4

2 回答 2

5

如果你使用 solarflare,你可以使用他们的 API 来做内核绕过(我没有直接使用它,所以不能提供更多细节)。您还可以使用像 29West LBM 或 IBM LLM 这样的消息传递产品,它们支持各种硬件上的丰富功能。

正如@eSniff 提到的,JRE 有transferFrom()/ transferTo()API,它现在用于为sendfile(2)支持它的系统公开等效项。定义了 API 的语义,因此可以透明地实现它以支持任意 2 个通道之间的 DMA 传输。

于 2012-08-25T16:21:21.660 回答
1

搜索“Java 零拷贝缓冲区”或“Java NIO”或“Java Netty”。

这是关于Netty和零拷贝的幻灯片: http ://www.slideshare.net/danbim/zerocopy-eventdriven-servers-with-netty 。这是一个使用 Netty 的示例项目。

或者您可以降低级别并使用java.nio.channels类,您可以在此处阅读http://www.ibm.com/developerworks/linux/library/j-zerocopy/

于 2012-08-25T16:13:33.050 回答