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の最適化なしでも結果はほとんど変わりませんでした。