C# .net の通常のリクエストと非同期のリクエストのパフォーマンスの違いは何ですか?
3 に答える
ユースケースによって異なります。単純なシナリオで async を使用してもすぐにパフォーマンスが向上するわけではありませんが、より複雑なシナリオやスケーラビリティにとって重要になる場合があります。
たとえば、多数のサーバーに複数のリクエストを送信するのは、明らかに並行して行うのが最適です。これは、非同期を使用して処理できます。
スケーラビリティに関しては、同期 Web 要求を使用して低速の外部サーバーと通信する Web アプリケーションを考えてみましょう。IIS は限られた量のスレッドのみを割り当ててユーザーからの要求に対応するため、ユーザー数が増えると、外部 Web 要求を待機している間にすべてのユーザー スレッドがブロックされるリスクがあります。これは、一部のユーザー要求が IIS によって拒否されることを意味します。
非同期モードでは、サーバーは必要なものだけに応答できます。これにより、ネットワークの負荷が最小限に抑えられ、応答時間が最小限に抑えられ、ユーザーエクスペリエンスが向上します。
それによって異なりますが、asp.net では同期を使用する必要があります (4.5 まで)。ただし、Windows フォームまたはその他の種類の C# プロジェクトでは、スレッドが保留になるのを防ぎます。ASYNC 完了イベントを呼び出すと、UI やメイン スレッドを保留にすることなく、適切な情報を更新できます。