awaitは極力使用を避けたいもの
awaitは極力使用を避けたいもの:
前回の記事では、
プログラムが複雑になることはできるだけ避けたいのですが、JavaScriptはシングルスレッドであるため、
ということで、長い時間かかる処理を実装するときは、ところどころに
しかし、今実装している処理が時間のかかる処理かどうかは、実際に動かしてみないとわかりません。ここでいう「時間のかかる処理」は「相対的に」という意味合いが強いです。
たとえば、今実装している処理にかかる時間の割合が全体の90%の場合、この処理に
前回の記事では、
awaitを使うことで別の処理に実行権を譲れることと、awaitを使うとプログラムが複雑になることを示しました。プログラムが複雑になることはできるだけ避けたいのですが、JavaScriptはシングルスレッドであるため、
awaitの使用はなかなか避けることはできません。というのも、たとえば10秒以上かかる処理があったときに、await未使用だと10秒以上フリーズするからです。ということで、長い時間かかる処理を実装するときは、ところどころに
awaitを入れる必要があります。しかし、今実装している処理が時間のかかる処理かどうかは、実際に動かしてみないとわかりません。ここでいう「時間のかかる処理」は「相対的に」という意味合いが強いです。
たとえば、今実装している処理にかかる時間の割合が全体の90%の場合、この処理に
awaitを取り入れることで大きな改善が望めます。しかし、もしこの割合が90%でなく1%の場合、そこにawaitを取り入れることにほとんど意味はありません。確かにawaitを使うことでフリーズの体感時間は減りますが、その代りにプログラムの複雑さが増します。残り99%はまだフリーズしたままですから、1%の処理にawaitを取り入れることで得られるものは「フリーズの体感時間の減少」<「プログラムの複雑さ」になってしまいます。
まとめ
- まずは
awaitを使わずに実装する - 各処理にかかる時間を測定し、割合の大きい順に並べる
- 割合の大きい処理から
awaitを取り入れていく
コメント
コメントを投稿