重複の可能性:
浮動小数点除算と浮動小数点乗算
最近、コンピュータが実数の掛け算、割り算、足し算を計算するのにかかる時間を計算するプログラムを作成しました。
そのために、時間間隔を取得するために関数 QueryPerformanceFrequency と QueryPerformanceCounter を使用しました。
私は6,000,000回の反復を使用してプログラムをテストしました:6000000回の乗算、除算、および合計(float変数を使用)で、次の結果が得られます:
O.S = Windows Vista (TM) Home Premium, 32-bit (Service Pack 2)
Processor = Intel Core (TM)2 Quad CPU Q8200
Processor Freq = 2.33 GHz
Compiler = Visual C++ Express Edition
nº iterations time in micro seconds
6000000 x real mult + assignment -> 15685.024214 us
6000000 x real div + assignment -> 51737.441490 us
6000000 x real sum + assignment -> 15448.471803 us
6000000 x real assignment -> 12987.614348 us
nº iterations time in micro seconds
6000000 x real mults -> 2697.409866 us
6000000 x real divs -> 38749.827143 us
6000000 x real sums -> 2460.857455 us
1 Iteration time in nano seconds
real mult -> 0.449568 ns
real div -> 6.458305 ns
real sum -> 0.410143 ns
除算は乗算よりも 6 倍遅く、加算は実質的に乗算と同じ (~ 0.42 ns) である可能性はありますか?