是否比Java中的乘法和除法更快地移位?。凈?如果您恰好使用2的冪,則左右移位顯然比大多數(shù)甚至所有CPU上的乘法和除法運(yùn)算更快。但是,它可能會(huì)降低某些讀取器和某些算法的代碼清晰度。位移對(duì)于性能是否真的是必要的,或者我是否可以期望編譯器或VM注意到這種情況并對(duì)其進(jìn)行優(yōu)化(特別是當(dāng)2的冪是文字時(shí))?我主要對(duì)Java和.NET行為感興趣,但歡迎深入了解其他語言實(shí)現(xiàn)。
3 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
幾乎任何有價(jià)值的環(huán)境都會(huì)為您優(yōu)化這一點(diǎn)。如果沒有,你就會(huì)有更大的魚來炸。說真的,不要再浪費(fèi)一點(diǎn)思考這個(gè)。你會(huì)知道什么時(shí)候出現(xiàn)性能問題。運(yùn)行探查器后,您將知道導(dǎo)致它的原因,并且應(yīng)該非常清楚如何修復(fù)它。
你永遠(yuǎn)不會(huì)聽到有人說“我的應(yīng)用程序太慢,然后我開始隨機(jī)更換x * 2
,x << 1
一切都被修復(fù)了!” 性能問題通常通過找到一種方法來減少工作量來解決,而不是通過找到一種方法來快速完成相同的工作。
添加回答
舉報(bào)
0/150
提交
取消