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很可能會使其變得無關緊要

TA貢獻1898條經(jīng)驗 獲得超8個贊
我認為這變得太挑剔了,您最好做任何使代碼更具可讀性的事情。除非您執(zhí)行該操作數(shù)千次(甚至數(shù)百萬次),否則我懷疑有人會注意到這種差異。
如果您真的必須做出選擇,則基準測試是唯一的選擇。查找哪些功能給您帶來了問題,然后找出功能中出現(xiàn)問題的位置,并修復這些部分。但是,我仍然懷疑單個數(shù)學運算(甚至重復多次,多次)是否會引起任何瓶頸。
添加回答
舉報