1/10秒が計れたらもっと正確になるのに・・・【AppleScript】 [Macでゲームをつくろう!]
何かの連続した処理をするときに、それぞれのマシンスペックで同じ早さで動いてほしい場合が有ります。
1秒単位で計れば良いというものであれば 簡単にできるのですが、それより早いものを制御するにはどうしたら良いのでしょう?
そこで考えました。
あらかじめそのマシンが処理にかかる時間を計り、それに比例した負荷をかけてやれば良いのではないかと思ったのですが・・・
とりあえず、repaet文で1000回繰り返せばそれなりの時間が計れるのではないかと思ったのです。
『実行!』
あれ?
0秒ですか?
あれほどアップルスクリプトの処理は遅いといわれ続けてたので意外でした。
じゃぁ、2桁増やして100000回では?
ぎゃ〜〜す!
0秒!
そんなに早いですか?
じゃぁ、ほかの処理を加えてみましょう。
間に、1づつ加算していくスクリプトを書き加えてみた。
そして実行!
ぎゃ〜〜す!!
これでも、まだですか?
繰り返しを先ほどと同じ100000回に増やしても、やはり同じ結果。
意外に早いじゃん!
このほかにも文字列“abc 〜省略〜 xyz”のを2の10条回繰り返したものを用意して、Repeat文のなかでそれを代入させるスクリプトもやってみたのですが結果は同じ。
これではほとんど負荷にならないんですね。
計算はあきらめて、自分自身のアドレスを調べにいかせてみるものに替えてみた。
お〜〜〜!
今度は成功!
・・・と思ったのですが、そのマシンのスペックを計ろうとしたのに 実行するたびにその数値に1秒くらいの誤差がでるんです。これでは駄目なのかな?
まぁ、これくらいの誤差で良い内容なら使えなくもないですが…。
あっ、
この誤差はもしかして、current dateで現在の時間を取得する時の誤差なんでしょうか?
時間を読み取る時は1秒以下は切り捨てですから、コンマ00秒〜コンマ99秒の間で誤差が発生し、表示に違いがでたのかもしれませんね。
これは、コンマ00秒で始めるように工夫すれば良いだけだから解決しそうです。
1秒単位で計れば良いというものであれば 簡単にできるのですが、それより早いものを制御するにはどうしたら良いのでしょう?
そこで考えました。
あらかじめそのマシンが処理にかかる時間を計り、それに比例した負荷をかけてやれば良いのではないかと思ったのですが・・・
とりあえず、repaet文で1000回繰り返せばそれなりの時間が計れるのではないかと思ったのです。
『実行!』
あれ?
0秒ですか?
あれほどアップルスクリプトの処理は遅いといわれ続けてたので意外でした。
じゃぁ、2桁増やして100000回では?
ぎゃ〜〜す!
0秒!
そんなに早いですか?
じゃぁ、ほかの処理を加えてみましょう。
間に、1づつ加算していくスクリプトを書き加えてみた。
そして実行!
ぎゃ〜〜す!!
これでも、まだですか?
繰り返しを先ほどと同じ100000回に増やしても、やはり同じ結果。
意外に早いじゃん!
このほかにも文字列“abc 〜省略〜 xyz”のを2の10条回繰り返したものを用意して、Repeat文のなかでそれを代入させるスクリプトもやってみたのですが結果は同じ。
これではほとんど負荷にならないんですね。
計算はあきらめて、自分自身のアドレスを調べにいかせてみるものに替えてみた。
お〜〜〜!
今度は成功!
・・・と思ったのですが、そのマシンのスペックを計ろうとしたのに 実行するたびにその数値に1秒くらいの誤差がでるんです。これでは駄目なのかな?
まぁ、これくらいの誤差で良い内容なら使えなくもないですが…。
あっ、
この誤差はもしかして、current dateで現在の時間を取得する時の誤差なんでしょうか?
時間を読み取る時は1秒以下は切り捨てですから、コンマ00秒〜コンマ99秒の間で誤差が発生し、表示に違いがでたのかもしれませんね。
これは、コンマ00秒で始めるように工夫すれば良いだけだから解決しそうです。
コメント 0