1 回答

TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
是的,這些數(shù)字是正確的。由于我無(wú)法發(fā)表評(píng)論(沒(méi)有足夠的堆棧溢出點(diǎn)),所以我將從堆棧溢出復(fù)制粘貼另一個(gè)類(lèi)似的答案
答案很簡(jiǎn)單,Python 處理所有事情的對(duì)象,并且默認(rèn)情況下它沒(méi)有 JIT。因此,Python 并沒(méi)有通過(guò)修改堆棧上的幾個(gè)字節(jié)并優(yōu)化代碼的熱點(diǎn)部分(即迭代)來(lái)提高效率,而是隨著表示數(shù)字的豐富對(duì)象一起運(yùn)行,并且沒(méi)有即時(shí)優(yōu)化。
如果您在具有 JIT 的 Python 變體(例如 PyPy)中嘗試過(guò)此操作,我向您保證您會(huì)看到巨大的差異。
一般提示是避免使用標(biāo)準(zhǔn) Python 進(jìn)行計(jì)算成本非常高的操作(特別是如果這是用于服務(wù)來(lái)自多個(gè)客戶(hù)端的請(qǐng)求的后端)。Java、C#、JavaScript 等使用 JIT 的效率是無(wú)與倫比的。
添加回答
舉報(bào)