あとがき
今回は四則演算や変数に注目してその処理速度を計測したわけですが、予想外のものが結構ありました。ただし、この処理速度はあくまでver.3.1.0においてのみ言えるもので今後のバージョンアップで変わる可能性があります。(乗算に関してはver.3.1.0でやたら遅くなったので今後変更の可能性は十分にある)
現状のバージョンで可能な限り速くしたいという人にとっては有用になるかもしれないですが、それでもナノ秒単位で高速化しても体感レベルの速度向上を得るのは非常に厳しいです。というのも1フレームは概ね1671万ナノ秒だからです。つまり、30fpsのゲームを60fpsで動作するようにしたい場合には1600万ナノ秒以上高速化する必要があります。
とはいえ、これが深い階層のループでメインループ1回あたり数千、数万回繰り返している処理ならば1000ナノ秒の高速化は数100万、数1000万ナノ秒の高速化に繋がります。したがって、多重ループの内側においては今回書いたことを元にすれば体感できるレベルの速度向上が可能になるかもしれません。しかし、それ以外だとベンチで数値化しないと分からないレベルの速度向上に止まると思います。やはり、高速化を行うならばアルゴリズムの改良など処理そのものを見直すということの方が重要になると思います。
今回の結果は「○○の処理が××ナノ秒である」ということが言いたいのではなくver.3.1.0は概ねこういう傾向にあるというのが分かれば良いのではないかと思います。(絶対的な数値よりも相対的な数値の方が重要)
《追記》
プチコン3号 ver.3.2.0では上記の表の数字と比べてかなり変わっています。実数演算においては全体的に大幅な向上(演算内容によって差異はあるものの概ね2割前後の速度向上)が見られますが、整数演算においてはあまり向上は見られません(数%の速度向上)。したがって、場合によっては同じ演算を行っても実数演算より整数演算の方が遅いという逆転現象も起きています。(上記の「処理時間計測プログラム」ではA=A+1よりもA%=A%+1の方が遅いという結果になっている。私の「処理時間計測プログラム」が信用できないという人はFOR I=1 TO 10000000:A=A+1:NEXTとFOR I=1 TO 10000000:A%=A%+1:NEXTの処理時間を比較してみてもいい。)
実際にどの程度変わったのかはここでは書きませんので自分の目で確かめて見てください。
RETURN (プチコン3号講座のページにもどる) RETURN *MAIN (トップページにもどる)