ビットシフトと掛け算どっちが効率がいいか?

世間じゃあビットシフトして論理和とったほうが早いだろう?っていうんだけど、やっぱり何事やってみないと分からないからやってみた。

Program-ビットシフトProgram-掛け算割り算

どちらも新規コンソールプロジェクト作ってProgram.csに上書きすればOKです。詳しい結果はコード内に記載されています。

環境:Core2Duo、WinVista 、後は適当。

あくまでもどっちが早いかを知りたかっただけなので、コードが間違ってても計算内容が同じであればOKだし、そんなに精密な値はいらないので、他のソフトも起動させっぱなしです。めんどくさいのでわざわざ再起動させて60秒待つなんてこともしてません。値に期待はしないほうがいいです。

結果。やっぱりビットシフト強し。たった百万回なのに100ミリ秒ぐらいの差が出てる。つまり0.1秒。これは塗りつぶしのときにストレスを感じるかどうかにかかわってくると思いますね。改善してみたいと思います。

ちなみにこれも全く適当な測定方法なんですが、valuleをrefをしなくて普通にに渡した場合とクラス変数を操作対象とするのと上のプログラムでどれが早いかを確かめてみました。結果は意外にもrefでした。普通に渡した場合とrefはは4ミリ秒ぐらいしか変わってないのですが、クラス変数は10ミリ秒前後でした。参考までに。

  1. コメントはまだありません。

  1. 2009年 10月 18日