処理速度を計測してみたよ♪(EADS Vol.11)
今日はRAとDECの移動角度を表示できるようにしたよ。
RAはhmsで、DECは°’”で表示だね。
起点となる位置でCLSボタンを押すと、0h0m0s、0°0’0”になる。
そこからどれだけ移動したかをステップ数から計算して表示してる。
脱調していなければ、かなり正確な角度が得られるはずなんだけど・・・
動かしてみて思った。
遅い!
32倍なんて到底出ていない。
RAの移動はhmsで表しているから、日周運動と同じタイミングで動かしたときは1秒で約1sになるはず。
1.5倍なら1mを45秒で移動できるはず。
そして32倍なら1.7秒ほどで1m動くはずなんだ・・・
遅い原因はプログラムの処理速度。
スレッドを多数動かしている上に、コマンド1つ1つの処理時間も0じゃないから遅くなることは解ってた。
でも、こんなに遅いとは!
計測してみよう。
1m動かすために何秒必要かを測ってみた。
結果はこんな感じ。
()内は理論的な時間だよ。右側は日周運動に対する倍率ね。
1.5倍(45秒)・・・46秒=1.3倍
2倍(30秒)・・・34秒=1.76倍
4倍(15秒)・・・23秒=2.6倍
32倍(1.7秒)・・・11秒=5.45倍
5倍かよっ!
これらはパルス間隔をSleep関数で開けているんだけど、最高速度にするにはSleepを削除する方法がある。
この速さはPCに依存すると思われるので、○○倍という表記はボツ。
微速、低速、高速、最高速って感じにするしかないね。
やっぱマイコン必要だな~
RAはhmsで、DECは°’”で表示だね。
起点となる位置でCLSボタンを押すと、0h0m0s、0°0’0”になる。
そこからどれだけ移動したかをステップ数から計算して表示してる。
脱調していなければ、かなり正確な角度が得られるはずなんだけど・・・
動かしてみて思った。
遅い!
32倍なんて到底出ていない。
RAの移動はhmsで表しているから、日周運動と同じタイミングで動かしたときは1秒で約1sになるはず。
1.5倍なら1mを45秒で移動できるはず。
そして32倍なら1.7秒ほどで1m動くはずなんだ・・・
遅い原因はプログラムの処理速度。
スレッドを多数動かしている上に、コマンド1つ1つの処理時間も0じゃないから遅くなることは解ってた。
でも、こんなに遅いとは!
計測してみよう。
結果はこんな感じ。
()内は理論的な時間だよ。右側は日周運動に対する倍率ね。
1.5倍(45秒)・・・46秒=1.3倍
2倍(30秒)・・・34秒=1.76倍
4倍(15秒)・・・23秒=2.6倍
32倍(1.7秒)・・・11秒=5.45倍
5倍かよっ!
これらはパルス間隔をSleep関数で開けているんだけど、最高速度にするにはSleepを削除する方法がある。
この速さはPCに依存すると思われるので、○○倍という表記はボツ。
微速、低速、高速、最高速って感じにするしかないね。
やっぱマイコン必要だな~