看板 Python 關於我們 聯絡資訊
選手1號: https://pastebin.com/TL2Ys690 選手2號: https://pastebin.com/B6i600fX 這是integer轉羅馬的題目, 令我比較意外的是, 選手1號有去判斷temp是否為0,是的話直接換下一個不囉唆 而選手2號沒有去判斷,而是即使是0也照著做,感覺會多運算一些,例如下面mod 而實測結果居然是選手2號比較快? 所以可以理解成,判斷是否為0比mod還要慢囉? 那這樣到底要什麼時候去下if else來使程式變快而不是變慢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.13.175 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1607224450.A.D52.html ※ 編輯: ericerix (101.10.13.175 臺灣), 12/06/2020 11:14:42
LP9527: 大部分計算比判斷快 12/06 13:46
art1: 因為 CPU 的分支預測猜錯了就會慢很多,所以一些最佳化方法 12/06 14:07
art1: 會用特殊技巧讓判斷變成計算 12/06 14:08
shane87123: 借串問 dict和array存取速度是否也有差別? 12/06 15:38
pmove: dict 是hash 很快喔 12/06 17:45
OrzOGC: dict存取感覺都慢array很多 12/06 18:24
pmove: Array在Python叫list, 跟dict比速度,詳細要看您怎麼用?如 12/06 19:57
pmove: 果您要存取的list元素要線性搜尋,這時改用dict 會快很多 12/06 19:57
miwuz: 推樓上~ 12/06 20:40
germun: 不保證誰快 不過有些方法的優勢要在資料量大才顯現的出來 12/06 22:49
DLHZ: 詳情請見算盤本 簡單來說因為處理器中pipeline設計的緣故會 12/07 01:25
DLHZ: 有些難以處理的情況 而if系列的指令就是其中一種(control ha 12/07 01:25
DLHZ: zard) 雖然有更進一步改進解決的方法 但一般來說能避免判斷 12/07 01:25
DLHZ: 式的寫法還是會比較快 有錯還請指正 12/07 01:25
leolarrel: 可以google "CPU 管線 分支預測" 12/08 16:48