A7Mの日記: むう…
日記 by
A7M
とりあえず作ってみたlong long intを使った固定小数点演算クラス。
比較のために単純な乗算でベンチマークをとってみるとdoubleの方が速い。 正直doubleの方が速いとは思わなかった。
よくよく考えてみると、doubleの場合だとFPU命令一発だし、自作の固定小数点の場合だと、乗算と整数丸め処理での除算があるから、この分が余計にコストがかかっていると言うことかな。
アセンブラのコードを見れば一発で判るだろうけど、アセンブラは判らんからパス。
比較のために単純な乗算でベンチマークをとってみるとdoubleの方が速い。 正直doubleの方が速いとは思わなかった。
よくよく考えてみると、doubleの場合だとFPU命令一発だし、自作の固定小数点の場合だと、乗算と整数丸め処理での除算があるから、この分が余計にコストがかかっていると言うことかな。
アセンブラのコードを見れば一発で判るだろうけど、アセンブラは判らんからパス。
さらに、Blade150(Solaris8)上で同じソースをコンパイルしてベンチマーク。doubleのほうが速いのは同様。
でも、Blade150のほうが10倍近く遅い。おいらが使っているPCはPentium4の2GHzだから条件が違うと言えば違うけど、こんなに差があるとは思わなかった。
いい勉強になった。
むう… More ログイン