awaitは極力使用を避けたいもの

awaitは極力使用を避けたいもの:

前回の記事では、awaitを使うことで別の処理に実行権を譲れることと、awaitを使うとプログラムが複雑になることを示しました。

プログラムが複雑になることはできるだけ避けたいのですが、JavaScriptはシングルスレッドであるため、awaitの使用はなかなか避けることはできません。というのも、たとえば10秒以上かかる処理があったときに、await未使用だと10秒以上フリーズするからです。

ということで、長い時間かかる処理を実装するときは、ところどころにawaitを入れる必要があります。

しかし、今実装している処理が時間のかかる処理かどうかは、実際に動かしてみないとわかりません。ここでいう「時間のかかる処理」は「相対的に」という意味合いが強いです。

たとえば、今実装している処理にかかる時間の割合が全体の90%の場合、この処理にawaitを取り入れることで大きな改善が望めます。しかし、もしこの割合が90%でなく1%の場合、そこにawaitを取り入れることにほとんど意味はありません。確かにawaitを使うことでフリーズの体感時間は減りますが、その代りにプログラムの複雑さが増します。残り99%はまだフリーズしたままですから、1%の処理にawaitを取り入れることで得られるものは「フリーズの体感時間の減少」<「プログラムの複雑さ」になってしまいます。


まとめ

  1. まずはawaitを使わずに実装する
  2. 各処理にかかる時間を測定し、割合の大きい順に並べる
  3. 割合の大きい処理からawaitを取り入れていく
この順序で実装していくことが理想です。

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)