2012-07-14 51 views
0

可能重复:
Should I use multiplication or division?
Compare multiplication and division是否比C++中的乘法更贵?

师是比C++乘法更贵?

我正在做优化,出于一些比较的原因,我可以将B/alpha_B变成 B * alpha_A。我现在可以选择 我应该乘法还是除法?

+3

有什么**你的**分析显示你? – 2012-07-14 05:46:17

+0

不知道如何配置:( – user1509260 2012-07-14 05:51:12

+2

你实现了两个,测量和看哪个更快; *这是一个提示,它可能不可测量,最有可能并不重要,它不是1983年了! * – 2012-07-14 05:52:08

回答

7

这与C++(或任何其他语言)以及与底层处理器体系结构/实现有关的一切无关。在大多数处理器系列中,分区速度通常比乘法慢10倍。也就是说,分割指令的延迟很少是目前程序中的主要性能热点(当然,你的里程可能会有所不同)。当用一个常数因子(例如矢量归一化,缩放,矩阵旋转)来分隔一个矢量时,用乘法运算来代替除法是最有意义的地方。这也是流水线深度最有效掩盖div指令延迟和内存带宽(假设大向量)可能会成为吞吐量限制的地方。

简而言之,现在很少有参与这些类型的微观优化。编译器优化器很可能会识别将乘法替换为除法的情况。