0xFFFFFFm走 -演算子杯-

 何となく気になったので

(というよりは一番足を引っ張っているのが

バッファ書き込みなのは明らかなので)

演算子関連の実行速度を検証してみた。



基本的に前回のコピペなので、

ソースは無しの結果のみで。





 …と、その前に開発・実行環境は

CPU : Pentium4 2.60GHz

メモリ : 512M

OS  : WinXP SP2

コンパイラ
    : VC.net 2003

ビルド : Debug*1

実行方法 : コンパイラを開いたままで「デバッグなしで実行」



では、結果の方を。




/*
* 各演算子処理にかかった時間(μs)
* →何かかなりムラが出るので(0xffffff)回分のデータを5回取って
*  その平均を出してみました。
*/

+ : 44517.2
- : 41033.8
* : 40107
/ : 381733.8
% : 382909.2
 結果を見ても明らかなように

除算(系)は壮絶に重いです。

コレ自体は

かなり有名(?)なことなので知ってはいたものの

まさかこれほどとは…。



 後、意外だったのは

積算は意外と軽い

ということ。

…データ上は加算や減算より速いことになってるけど…、

多分ムラがあるので、「ほぼ同等」程度に考えるといいでしょうかね。



 更についでに、ビット演算子


/*
* 上記と同様(手抜き)
*/

<< : 82673.2
>> : 82610
…!?何か異様に重いですよ?(汗)

…適当に「5ずつ」にしたのがマズかったのか?(汗)

……それ以前に下手するとバグるんじゃなかろうか…コレは…(大汗)

よって、割愛(苦笑)

…というか、文末が全部(文字)なのはありえないな…。




*1:Releaseで最適化をかけると全て「0」になります(苦笑)
また、Releaseの最適化なしでも結果はほとんど変わりませんでした。