可能重复:
Should I use multiplication or division?
Compare multiplication and division
分区比C ++中的乘法更昂贵吗?
我正在进行优化,我可以将B / alpha_B转换为 B * alpha_A,出于某些比较原因。我现在可以选择 我应该选择乘法还是除法?
答案 0 :(得分:8)
这与C ++(或任何其他语言)无关,而与底层处理器架构/实现有关。在大多数处理器系列中,除法通常比乘法慢10倍。
也就是说,除法指令的延迟很少是这些天程序中的主要性能热点(当然,你的里程可能会有所不同)。当你用向量除以常数因子(例如向量归一化,缩放,矩阵旋转)时,用向量乘以替换除法最有意义的地方。这也是管道深度将最大限度地掩盖div
指令延迟和内存带宽(假设大向量)可能会成为吞吐量限制的地方。
简而言之,现在参与这些类型的微观优化并不值得。很可能编译器优化器会识别将乘法替换为除法的情况。
答案 1 :(得分:0)
我发现一个消息来源声称乘法更快:
http://simpletonprogrammer.blogspot.com/2012/01/assumed-optimization-floating-point.html
FMUL& amp;的定时FDIV似乎相当确凿,至少对于所列出的处理器而言。然而,其他处理器可能不同。换句话说,学会分析。