可能重复:
Should I use multiplication or division?
Compare multiplication and division是否比C++中的乘法更贵?
师是比C++乘法更贵?
我正在做优化,出于一些比较的原因,我可以将B/alpha_B变成 B * alpha_A。我现在可以选择 我应该乘法还是除法?
可能重复:
Should I use multiplication or division?
Compare multiplication and division是否比C++中的乘法更贵?
师是比C++乘法更贵?
我正在做优化,出于一些比较的原因,我可以将B/alpha_B变成 B * alpha_A。我现在可以选择 我应该乘法还是除法?
我发现一个来源声称,乘快:
http://simpletonprogrammer.blogspot.com/2012/01/assumed-optimization-floating-point.html
为FMUL & FDIV的时机似乎是相当确凿的,至少上市的处理器。然而,其他处理器可能不同。换句话说,学会配置文件。
这与C++(或任何其他语言)以及与底层处理器体系结构/实现有关的一切无关。在大多数处理器系列中,分区速度通常比乘法慢10倍。也就是说,分割指令的延迟很少是目前程序中的主要性能热点(当然,你的里程可能会有所不同)。当用一个常数因子(例如矢量归一化,缩放,矩阵旋转)来分隔一个矢量时,用乘法运算来代替除法是最有意义的地方。这也是流水线深度最有效掩盖div
指令延迟和内存带宽(假设大向量)可能会成为吞吐量限制的地方。
简而言之,现在很少有参与这些类型的微观优化。编译器优化器很可能会识别将乘法替换为除法的情况。
有什么**你的**分析显示你? – 2012-07-14 05:46:17
不知道如何配置:( – user1509260 2012-07-14 05:51:12
你实现了两个,测量和看哪个更快; *这是一个提示,它可能不可测量,最有可能并不重要,它不是1983年了! * – 2012-07-14 05:52:08