SSブログ

1/10秒が計れたらもっと正確になるのに・・・【AppleScript】 [Macでゲームをつくろう!]

何かの連続した処理をするときに、それぞれのマシンスペックで同じ早さで動いてほしい場合が有ります。
1秒単位で計れば良いというものであれば 簡単にできるのですが、それより早いものを制御するにはどうしたら良いのでしょう?

そこで考えました。
あらかじめそのマシンが処理にかかる時間を計り、それに比例した負荷をかけてやれば良いのではないかと思ったのですが・・・
とりあえず、repaet文で1000回繰り返せばそれなりの時間が計れるのではないかと思ったのです。
ピクチャ 1.png
『実行!』
ピクチャ 2.png
あれ?
0秒ですか?
あれほどアップルスクリプトの処理は遅いといわれ続けてたので意外でした。

じゃぁ、2桁増やして100000回では?
ピクチャ 3.png
ぎゃ〜〜す!
0秒!
そんなに早いですか?

じゃぁ、ほかの処理を加えてみましょう。
間に、1づつ加算していくスクリプトを書き加えてみた。

そして実行!
ピクチャ 4.png
ぎゃ〜〜す!!
これでも、まだですか?
繰り返しを先ほどと同じ100000回に増やしても、やはり同じ結果。

意外に早いじゃん!
このほかにも文字列“abc 〜省略〜 xyz”のを2の10条回繰り返したものを用意して、Repeat文のなかでそれを代入させるスクリプトもやってみたのですが結果は同じ。
これではほとんど負荷にならないんですね。

計算はあきらめて、自分自身のアドレスを調べにいかせてみるものに替えてみた。
ピクチャ 5.png
お〜〜〜!
今度は成功!

・・・と思ったのですが、そのマシンのスペックを計ろうとしたのに 実行するたびにその数値に1秒くらいの誤差がでるんです。これでは駄目なのかな?
まぁ、これくらいの誤差で良い内容なら使えなくもないですが…。

あっ、
この誤差はもしかして、current dateで現在の時間を取得する時の誤差なんでしょうか?
時間を読み取る時は1秒以下は切り捨てですから、コンマ00秒〜コンマ99秒の間で誤差が発生し、表示に違いがでたのかもしれませんね。

これは、コンマ00秒で始めるように工夫すれば良いだけだから解決しそうです。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。