微妙な時間差の検証
ふと、on enterからcondition、conditionから次のstateのon enterの
タイムラグってどんなもんだろう?と思って調べてみました。
まずはこんな感じに横並びのおじさんを配置。
1パターン目(conditionから次のstateのon enter)
ステートの終わりにおじさんをONにして、
次のステートのOnEnterでおじさんをOFFにしました。
するとこんな感じ
2パターン目(on enterからcondition)
ステートの冒頭でONにして、そのステート内のConditionでOFFにしてしまうパターン。
するとこんな感じ
おわかりいただけただろうか・・・・
わかりにくかったので音(レバー)をつけてもう一度。
前半がパターン1、後半がパターン2
どうやら
on enter→conditonのほうが、condition→次のstateのon enterより
若干処理が遅いようです。
conditionにはif文が含まれるので、そこでわずかながら考える時間が挟まった
と思えばわからなくもないような結果でした。
ライトを点けてすぐ消す!みたいな処理は、
on enterでつけて→conditionで消すとしたほうが
ちゃんと一瞬点いたことが視認出来てよさそうです。
(メモ:その一瞬の点灯をトリガーとして別のネットワークパソコンが処理開始できるか?は要検証)
・・・ということは、if文は3つ書けるけど、
3つ目のifに到達するまでに時間がかかるのか!?
ということで次の実験
細かい解説ははぶきますが、
ONOFFすればIF文の1つ目を読んだり3つ目を読んだりするような
スイッチを増設しました。
結果はこちら。わかりにくいですが、途中でレバー操作をしています。
うん、全然違いがわからん・・・
ということで、if文が1つ目だろうと3つ目だろうと処理速度に違いはなさそうです。
最後に、複数ホームネットワークパソコンを置いて処理を書いた後、
家に入りなおした際にそれぞれが処理開始するタイミングにズレはあるのか?
というのを調査してみました。
こんな感じでおじさんを3列配置して、
1列、1ホームネットワークパソコンで順繰りに動かしていく設定をしました。
ソースは単純に、順繰りにまわすだけ
設定後一度家をでて、帰ってきた状態がこちら。
全列、見事に動きがそろいましたね。完全に同じタイミングでロードされるようです。
また、保存するタイミングでずらせるのか?と思ったら
初期化はともかく、保存して再ロードも
全部のネットワークパソコンに適用されるんですね・・・。知らなかった。
なんだかおもしろい気づきが得られたような、そうでもないようなw