2012-07-14 50 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指令延遲和內存帶寬(假設大向量)可能會成爲吞吐量限制的地方。

簡而言之,現在很少有參與這些類型的微觀優化。編譯器優化器很可能會識別將乘法替換爲除法的情況。