如果乘法比加法慢,而不是做
7 * 8
这会从理论上改善性能吗?
for(int i =0; i < 8 ; i++){
temp += 7
}
或者我只需要做
7 + 7 + 7 + 7 + 7 + 7 + 7 + 7
答案 0 :(得分:4)
你试过它并计时吗?
在如今的几乎所有现代机器上,都有快速的硬件支持来实现乘法。因此,除非简单乘以2,否,否则不会更快。
在当前的英特尔机器上提供一些硬数据:
add/sub 1 cycle latency
mul/imul 3 cycle latency
虽然它实际上比这复杂得多,但重点仍然是:不,你试图用加法替换乘法会有任何好处。
在 更好的少数情况下(例如乘以2的幂 - 使用移位),编译器将为您进行优化,如果它在编译时知道值
在x86上,编译器也可以使用lea
指令快速乘法3,5,10等...
答案 1 :(得分:1)
我发现很难相信16个值赋值,16个加法和8个条件语句比processior可以乘以7 * 8更快。
答案 2 :(得分:1)