![](https://res.cloudinary.com/zenn/image/upload/s--GOqvE9_g--/co_rgb:222%2Cg_south_west%2Cl_text:notosansjp-medium.otf_37_bold:Kazuki%2520Ota%2Cx_203%2Cy_98/c_fit%2Cco_rgb:222%2Cg_north_west%2Cl_text:notosansjp-medium.otf_57_bold:C%2523%2520%25E3%2581%25AE%2520Web%2520%25E3%2582%25A2%25E3%2583%2597%25E3%2583%25AA%25E3%2581%25A7%2520async%252Fawait%2520%25E3%2582%2592%25E4%25BD%25BF%25E3%2582%258F%25E3%2581%25AA%25E3%2581%2584%25E3%2581%25A8%25E3%2581%25A9%25E3%2582%258C%25E3%2581%258F%25E3%2582%2589%25E3%2581%2584%25E6%2580%25A7%25E8%2583%25BD%25E5%258A%25A3%25E5%258C%2596%25E3%2581%2599%25E3%2582%258B%25E3%2581%258B%25E8%25A6%258B%25E3%2581%25A6%25E3%2581%25BF%25E3%2582%2588%25E3%2581%2586%2528.NET%2520Framework%25E7%25B7%25A8%2529%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9yZXMuY2xvdWRpbmFyeS5jb20vemVubi9pbWFnZS9mZXRjaC9zLS1uNG9JaHJGMi0tL2NfbGltaXQlMkNmX2F1dG8lMkNmbF9wcm9ncmVzc2l2ZSUyQ3FfYXV0byUyQ3dfNzAvaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzhmNzg3NDJjNDQuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_72/v1627274783/default/og-base_z4sxah.png)
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 実装における非同期処理は非常に重要ですが、その大切さが分かる良い記事です。以下の記事も参考になります。
要約