3

SignalR のパフォーマンスをテストして、ソフトウェアに使用できるかどうかを確認するためのプロトタイプを作成しました。そのプロトタイプでは、PersistentConnection と HubConnection を介してクライアントにデータを転送する両方をテストしました。

当社のストレステストは、次の 3 つのコンポーネントで構成されています。

  • ハブに登録してメッセージをサブスクライブする 1 つの「クライアント」
  • メッセージの受信と転送を担当する 1 つのハブ (セルフホステッド)
  • 各スレッドがハブを介してクライアントに 1000 個のメッセージを送信する 5 つのスレッドを含む 1 つの「ドライバー」

PersistentConnection はかなり安定して動作しますが、HubConnection では、ハブ内に多数のスレッドがあり、数百パケットごとに長い遅延 (1 ~ 10 秒の間で変化) があることに気付きました。遅延は主にハブ内で発生します (また、ハブとクライアントの間でも発生します)。また、「ドライバー」からハブへの配送にもわずかな遅延があります。遅延とは、ハブへのメソッド呼び出しが (ドライバーで) 遅延を返すこと、またはクライアントの受信メソッド呼び出しがかなり後で呼び出されることを意味します。時々、いくつかのメッセージが失われます (クライアントに配信されません)。

それはどこから来るのでしょうか?これは既知のバグですか? 微調整できるオプションはありますか? リクエストに応じて提供できる実用的な例として、完全なソリューションがあります。

Thxアレックス

4

1 に答える 1

2

私の知る限り、SignalR のパフォーマンスははるかに優れています。

こちらのビデオをご覧ください: ASP.NET SignalR を使用してリアルタイム Web アプリを構築することで、SignalR とパフォーマンスの可能性について理解を深めることができます。

パフォーマンスwiki ページもチェックしてください。

SignalR には、自由に使用できるロード テスト ツールがあります。最初にこれらのツールを使用してパフォーマンスをテストし、ハードウェアの機能を明確に把握してください。

ツール:

Crankを使用して負荷テストを実行してみる

Crank は、SignalR の負荷テスト ツールです。

フライホイールも見てください 。

SignalR のパフォーマンスを測定するための単純なパフォーマンス ハーネス プロジェクト。クランクと併用

于 2012-11-09T13:24:22.983 に答える