リビジョン 2: より少ない接続の再設計

このリビジョンでは、不要な接続を排除するために、サンプル アプリケーションが再設計されています。

警告

このアプリケーションの例では、コードの変更によって可能なパフォーマンスの向上を示すために、意図的にパフォーマンスが低下します。 このコード サンプルは、アプリケーションでは使用しないでください。これは説明のみを目的としています。

 

ComputeNext( Map );
bind( s, ... );
connect( s, ... );
for(int i=0 ; i < ROWS ; ++i)
  for(int j=0 ; j < COLS ; ++j)
  {
    BYTE tmp[3];
    tmp[0] = i;
    tmp[1] = j;
    tmp[2] = Map[i][j];
    send( s, tmp, 3 );
    recv( s, &byRet, 1 );
  }
closesocket( s );

残りの問題

リビジョン 2 の変更により、更新ごとに 1 つの接続のみを行うためにアプリケーションが再設計されました。 アプリケーションには、引き続き次のパフォーマンスの問題が含まれています。

  • アプリケーションは引き続きシリアル化され、チャットされます。
  • アプリケーションはまだ脂肪のデザインを持っています。この設計では操作を必要としない送信が多数あります。
  • 送信はまだ 3 バイトのみであり、ストリーミングが不十分です。

主要なパフォーマンス メトリック

次のパフォーマンス メトリックは、ラウンド トリップ時間 (RTT)、Goodput、およびプロトコルオーバーヘッドで表されます。 これらの用語の説明については、 ネットワーク用語 に関するトピックを参照してください。

このバージョンには、次のパフォーマンス メトリックが反映されています。

  • セル時間 — 1*RTT
  • Goodput — 4 バイト/RTT
  • プロトコルオーバーヘッド — 96.8%

低速アプリケーションの改善

ネットワーク用語

ベースライン バージョン: パフォーマンスが非常に低いアプリケーション

リビジョン 1: 明らかにクリーンアップする

リビジョン 3: 圧縮ブロック送信

今後の改善