最近、マルチキャスト送信パフォーマンスの分析を完了しました。幸い、JavaとCは、WindowsとSolarisで異なるトラフィック送信速度をテストしたため、ほぼ同じように機能しました。
ただし、送信間の時間が長くなると、マルチキャストメッセージを送信する時間が長くなることに気付きました。sendを頻繁に呼び出すほど、send呼び出しを完了するのにかかる時間は短くなります。
このアプリケーションを使用すると、sendを呼び出すまでの待機時間を制御できます。以下では、パケット間の遅延が増加するにつれて時間が増加します。1000パケット/秒(1ミリ秒の待機時間)を送信する場合、送信を呼び出すのに13マイクロ秒しかかかりません。1パケット/秒(1000ミリ秒の待機時間)では、その時間は20マイクロ秒に増加します。
Wait time (ms) us to send
0 8.67
1 12.97
10 13.06
100 18.03
1000 20.82
10000 57.20
この現象は、JavaとCの両方、およびWindowsとSolarisの両方で見られます。IntelPro1000デュアルポートネットワークカードを搭載したDell1950サーバーでテストしています。マイクロベンチマークは、特にJavaでは難しいですが、これはJITやGCに関連しているとは思われません。
テストに使用しているJavaコードとコマンドラインは次の場所にあります:http ://www.moneyandsoftware.com/2009/09/18/multicast-send-performance/