分裂比C++中的乘法更昂贵吗?

use*_*260 1 c++ optimization

可能重复:
我应该使用乘法还是除法?
比较乘法和除法

分裂比C++中的乘法更昂贵吗?

我正在进行优化,我可以将B/alpha_B变成B*alpha_A,原因有些比较.如果我选择乘法或除法,我现在可以选择吗?

Dre*_*all 9

这与C++(或任何其他语言)无关,也与底层处理器架构/实现有关.在大多数处理器系列中,除法通常比乘法慢10倍.

也就是说,划分指令的延迟很少是这些天程序中的主要性能热点(当然,您的里程可能会有所不同).将向量乘以倒数替换除法最有意义的地方是将向量除以常数因子(例如向量归一化,缩放,矩阵旋转).这也是流水线深度将最大限度地掩盖div指令延迟和内存带宽(假设大向量)可能成为吞吐量限制的地方.

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