Java でカーネル バイパスを実行する方法を理解した人はいますか? どこかのこんにちは世界ですか、それともこれはロケット科学ですか?
2 に答える
solarflare を使用している場合は、その API を使用してカーネル バイパスを実行できます (直接使用していないため、詳細を提供できません)。さまざまなハードウェアで豊富な機能をサポートする 29West LBM や IBM LLM などのメッセージング ブロダクトを使用することもできます。
@eSniff が述べたように、JRE にはtransferFrom()
/ transferTo()
API があり、現在sendfile(2)
、それをサポートするシステムに相当するものを公開するために使用されています。API のセマンティクスは、任意の 2 チャネル間の DMA 転送をサポートするために透過的に実装できるように定義されています。
「Java Zero-Copy Buffers」、「Java NIO」、または「Java Netty」を検索します。
Nettyとゼロコピーに関するスライド ショーは次のとおりです: http://www.slideshare.net/dabim/zerocopy-eventdriven-servers-with-netty。以下は、Netty を使用したサンプル プロジェクトです。
または、下位レベルに移動して、ここで読むことができるjava.nio.channelsクラスを使用することもできますhttp://www.ibm.com/developerworks/linux/library/j-zerocopy/