第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該使用乘法還是除法?

我應該使用乘法還是除法?

qq_遁去的一_1 2019-10-09 15:16:45
這是一個愚蠢的有趣問題:假設我們必須執(zhí)行一個簡單的操作,其中我們需要變量值的一半。有通常這樣做的方法有兩種:y = x / 2.0;// or...y = x * 0.5;假設我們正在使用該語言提供的標準運算符,那么哪一個具有更好的性能?我猜想乘法通常更好,所以我在編碼時會盡量堅持下去,但是我想確認一下。盡管我個人對Python 2.4-2.5 的答案很感興趣,但是也可以發(fā)布其他語言的答案!而且,如果您愿意,也可以發(fā)布其他更奇特的方式(例如使用按位移位運算符)。
查看完整描述

3 回答

?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

蟒蛇:


time python -c 'for i in xrange(int(1e8)): t=12341234234.234 / 2.0'

real    0m26.676s

user    0m25.154s

sys     0m0.076s


time python -c 'for i in xrange(int(1e8)): t=12341234234.234 * 0.5'

real    0m17.932s

user    0m16.481s

sys     0m0.048s

乘法快33%


盧阿:


time lua -e 'for i=1,1e8 do t=12341234234.234 / 2.0 end'

real    0m7.956s

user    0m7.332s

sys     0m0.032s


time lua -e 'for i=1,1e8 do t=12341234234.234 * 0.5 end'

real    0m7.997s

user    0m7.516s

sys     0m0.036s

=>沒有真正的區(qū)別


LuaJIT:


time luajit -O -e 'for i=1,1e8 do t=12341234234.234 / 2.0 end'

real    0m1.921s

user    0m1.668s

sys     0m0.004s


time luajit -O -e 'for i=1,1e8 do t=12341234234.234 * 0.5 end'

real    0m1.843s

user    0m1.676s

sys     0m0.000s

=>僅快5%


結論:在Python中,乘法要快于除法,但是當您使用更高級的VM或JIT接近CPU時,優(yōu)勢就會消失。將來的Python VM很可能會使其變得無關緊要


查看完整回答
反對 回復 2019-10-09
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

我認為這變得太挑剔了,您最好做任何使代碼更具可讀性的事情。除非您執(zhí)行該操作數(shù)千次(甚至數(shù)百萬次),否則我懷疑有人會注意到這種差異。

如果您真的必須做出選擇,則基準測試是唯一的選擇。查找哪些功能給您帶來了問題,然后找出功能中出現(xiàn)問題的位置,并修復這些部分。但是,我仍然懷疑單個數(shù)學運算(甚至重復多次,多次)是否會引起任何瓶頸。


查看完整回答
反對 回復 2019-10-09
  • 3 回答
  • 0 關注
  • 830 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號