可能重複:
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