【ご質問】
通信のレスポンス待ちが長い状態の際、dispatch-eventsの呼出が
多くなってしまうようで、クライアントPCのCPU使用率が100%になってしまいました。
CPU使用率を低下させるためにdispatch-eventsの呼出を
変更前:{dispatch-events false}
変更後:{dispatch-events true}
と変更することで、概ね期待通りの改善が見られることを確認しましたが、
同じような処理になっている箇所が多数あるため影響の範囲が分からない状態です。
①アプリケーションからdispatch-eventsを呼び出す場合、
引数をfalse→true と変更することで、懸念される影響は
どのようなものがあるのでしょうか?
②どのように使い分ければいいのでしょうか。
③trueとした場合、イベントが何も起きなければ、
無限に停止してしまうことになるのでしょうか。
【回答】
{dispatch-events}はAPIリファレンスの注意事項にも記述があるように、
実行されるイベントが予期できず、結果として予期せぬ動作が生じることもあるため
慎重に利用する必要があります。
①について
影響に関してはプログラムに依存するため予測不可能です。
引数をfalseからtrueに変更することでイベントキューにイベントが入るまで
{dispatch-events}を実行しないのでCPUの利用率の低下が
見込めるかもしれませんが、その他への影響に関しては言及することは困難です。
②について
目的によって使い分けていただくことが必要になります。
③について
何かしらのイベントがイベントキューに入るのを待つため、
イベントが何も起きなければ 無限に待つことになります。
最初に記載したように、{dispatch-events}は慎重に扱う必要があります。
false→true への変更の際には十分なテストを行って下さい。