C# の Web アプリで async/await を使わないとどれくらい性能劣化するか見てみよう(.NET Framework編)
CRANK
前に ASP.NET Core で非同期と同期で3秒待ってレスポンス返すだけのプログラムを書いて Azure の Web Apps にデプロイして結果を見るという事をやりました。 ASP.NET 4.8 編になります。 デプロイした Web API純粋に Thread.Sleep(3000); で待つものと await Task.Delay(3000); で待つものの二種類を作りました。ASP.NET 4.8 の Web API のテンプレートで出力される ValuesController の Get() メソッドに対して上記の2種類のコードを追加しています。 同期版using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Threading; using System.Web.Http; namespace SyncWebApp.Controllers { public class ValuesController : ApiController { // GET api/values public IEnumerable<string> Get() { Thread.Sleep(3000); return new string[] { "value1", "value2" }; } // GET api/values/5 public string Get(int id) { return "value"; } // POST api/values public …
Server Side 実装における非同期処理は非常に重要ですが、その大切さが分かる良い記事です。以下の記事も参考になります。
要約