8

ここでの「DMA」は、ダイレクト メモリ アクセスを意味し、「RDMA」はリモート ダイレクト メモリ アクセスを意味します。

Java を使用して株式データを転送するアプリケーションを作成しましたが、予想よりもレイテンシーが大きいことがわかりました。性能の良い「DMA/RDMA」を使った同種のアプリケーションを開発した人がいると聞いたので、「DMA/RDMA」をJavaで使えるのだろうか?

そうでない場合、どの言語を使用すればよいですか?また、使用するのに適したライブラリがあれば教えてください。

4

6 に答える 6

6

IBM 開発者によるこの記事では、java を使用して DMA アクセスを実現する方法の概要を説明しています。

于 2011-10-19T11:19:57.373 に答える
3

あなたには2つのオプションがあります(私が知っている):

  1. Java SDP -- 非推奨
  2. JXIO [1]、RDMA 上に構築され、Mellanox によってサポートされる高性能メッセージング ライブラリ

[1] https://github.com/accelio/JXIO

于 2016-02-24T05:29:08.297 に答える
2

Java で RDMA をプログラミングするための新しいライブラリであるDiSNIがあります。DiSNI は、IBM の jVerbs のオープン ソース版です。Java を使用した RDMA が、C および Java のソケット、さらには C の RDMA とどのように比較されるかを示すいくつかのパフォーマンス数値がここにあります。

于 2016-08-09T08:27:24.887 に答える
1

私が知っているように、RDMA はネットワーク インフラストラクチャ (関連するカーネル モジュールなどと共に) のプロパティであり、アプリケーション レベルのプログラミング言語のプロパティではありません。

言い換えれば、RDMA を利用してネットワーク遅延を短縮するには、専用のキットを入手する必要があります。以下は、RDMA をサポートする 10GbE ネットワーク カードの例です: link .

于 2011-10-19T10:52:52.350 に答える
0

Java アプリケーションは、nio パッケージを介してファイルをマッピングできます。これらの mmaped ファイルは複数のプログラムからアクセスできます - これは Java で利用可能な DMA に近いものだと思います

于 2011-10-19T10:54:14.167 に答える