【发布时间】:2012-12-15 04:02:55
【问题描述】:
可能重复:
Floating point division vs floating point multiplication
最近,我写了一个程序来计算我的电脑需要多长时间 计算实数乘法、除法和加法。
为此,我使用了 QueryPerformanceFrequency 和 QueryPerformanceCounter 函数 为了获得时间间隔。
我已经使用 6,000,000 次迭代测试了我的程序:6000000 次乘法、除法和求和(使用浮点变量),并得到以下结果:
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
是否有可能除法比乘法慢六倍,以及 加法实际上等于乘法(~ 0.42 ns)?
【问题讨论】:
-
问:有没有可能除法比乘法慢六倍,而加法实际上等于乘法? 答: 是的。
标签: c++ performance performancecounter