2

Q1) Java Disruptor パターンに精通している人で、結果をベンチマークしたメッセージのサイズを知っている人はいますか? 私は同様のシステムを (純粋な興味から) 作成していますが、彼らのテストの説明を読んだときに、送信されたメッセージ サイズについて言及されていませんか?

http://code.google.com/p/disruptor/wiki/PerformanceResults

Q2) ディスラプターは、コンピューター間通信またはプロセス間通信のどちらですか? 私は当初、それがコンピューターからコンピューターへの印象を持っていましたが、彼らの作品は「インタースレッド」メッセージングライブラリとラベル付けされていますか?

4

3 に答える 3

10

ディスラプターは同じマシン内だけではなく、単一のプロセス内にあります。「スレッド間」とは、1 つのプロセスのスレッド間でメッセージを送信することを意味します。

メッセージはコピーされないため、メッセージのサイズは実際にはほとんど関係ありません。メッセージはすべて最初に修正されて再利用されるため、メッセージの大きさは重要ではありません。

于 2012-04-18T12:13:32.100 に答える
1

私は完全に精通しているわけではありませんが、探索しているだけです...

1) src の perf テスト フォルダーから、ValueEventクラスを使用しているように見えます。これは long を保持するだけですが、他のパフォーマンス テストで使用される他の xxxEvent クラスもいくつかあります。ここまで収集すると、リング バッファ内で long のみが使用されます。

2)完全に同じマシン間スレッド通信用であると思います。マシン間の通信の遅延と不確実性により、通信が非常に遅くなります。(比較的)そして、プロジェクトはソケット通信も処理する必要がありますが、これはこのライブラリでは見られませんでした。

于 2012-04-18T12:09:08.347 に答える
0

1,Disruptor はメッセージのサイズを気にしません。ただし、結果はメッセージのサイズによって線形に低下するはずです(ワークロードが増加し、速度が低下しました)

実際、メッセージは気にしません。

ライブラリのKEYはバッファのIDです。ポインター、位置、カーソル、インジケーター、すべて同じ意味です。ディスラプター自身はそれを「シーケンス」と呼んでいます

IDを取得すると、全世界はあなただけが所有します!:)だからライターは1人だけです。本当のキーポイント.:)

2、C2CでもP2Pでもない:)。ただのT2T。T はスレッドです。Peter-lawrey には素晴らしいライブラリ Java-Chronicleがあり、P2P の場合に使用できます。Java dzone に関する新しい記事: http://java.dzone.com/articles/ultra-fast-reliable-messaging

3. コア パターンは、境界を越えたユース ケースに複製できる必要があります。すべてがIDです。メッセージに関しては、customized.

4、もう1つの重要なポイントは、volatile のキャッシュですgithub の素晴らしい例

5、JDK8 のイントロに新しいアノテーション@Contendedが追加されました。セクシーなようです。競合の詳細

于 2013-06-13T12:26:02.653 に答える