やること
マウスを移動させまくった時のキャンバスのマウス移動した時のイベントが発生する回数と画面更新時実行の発生回数を調べてみます
くわしく
キャンバスのマウス移動した時を設定すると、マウスカーソルを動かした時にすごい回数のイベントが発生します。
画面更新時実行を毎フレーム実行すると、これまたすごい回数のイベントが発生します。
どちらの方が多いかな?ということを計測します。
予想される結果は3通り
・同じ数、交互に発生する(マウス移動した時→画面更新→マウス移動した時→画面更新→…)
・マウス移動した時が多い(マウス移動した時→マウス移動した時→画面更新→マウス移動した時→マウス移動した時→画面更新→…)
・画面更新の方が多い(マウス移動した時→画面更新→画面更新→マウス移動した時→画面更新→画面更新→…)
プログラム
!インデント構文
マウス移動回数=0
画面更新回数=0
描画中キャンバスのマウス移動した時には
マウス移動回数=マウス移動回数+1
「更新時」を画面更新時実行
●更新時
「更新時」を画面更新時実行
もしマウス移動回数が0ならば、戻る
画面更新回数=画面更新回数+1
全描画クリア
[10,10]へ画面更新回数を文字描画
[10,30]へマウス移動回数を文字描画
[10,50]へ(画面更新回数-マウス移動回数)を文字描画 //実行回数の差を表示
検証方法
上記のプログラムを実行して、キャンバスの上でマウスを移動させ続ける
実行回数の差を見るとどちらが発生回数多いかがわかる
実行環境
2022年11月ころ ブラウザ:edge
実行結果
実行回数の差は0。
マウスを移動し続けたとき、「描画中キャンバスのマウス移動した時」と「画面更新回数」は同じ回数発生しているようです。
ブラウザの種類やブラウザのアップデートによって変わるかもしれないので、参考程度におねがいします。