看板 C_and_CPP 關於我們 聯絡資訊
各位大大好, 想請教各位一般在用for loop時, 我們時常會在執行完一次loop後,將變數做i++ or i--, 想請教各位該如何分析i++ & i--的效能誰比較快!? 是否要將.c轉成assembly去實際看做了些什麼!? 懇請各位大大給我一點方向~ Note: 不是i++ & ++i的效能比較 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.140.38 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1551452231.A.CDC.html
jerryh001: 就加法器的原理來說應該一樣快? 03/01 23:06
面試時被問這個問題,答案不是一樣快唷
AndCycle: 只能看編譯結果,開最佳化通常都會幫你做掉,輪不到你想 03/02 00:32
因為面試時被問,所以想知道這個分析這個效能
EricTCartman: 你自己不就說要從assembly看了嗎@@ 03/02 10:26
EricTCartman: 之前板上有人做過實驗 編譯器最後結果是一樣快 03/02 10:26
EricTCartman: 產生的assembly一樣 而且80:20法則 通常系統真正有 03/02 10:26
EricTCartman: 效能問題的不會在這種地方 03/02 10:28
感謝大大,我只是猜測分析組語,畢竟我對組語不熟,所以才發文想知道怎麼分析
FRAXIS: https://godbolt.org/ 用這個看 assembly 03/02 11:49
FRAXIS: 然後用 linux perf 去看該 instruction 到底花多少時間 03/02 11:53
FRAXIS: 還可以用 pmu tool 看一下到底是卡在 CPU 的哪部分 03/02 11:54
感謝大大
CoNsTaR: 推樓上那網站,學組語相關好用 03/03 10:55
感謝大大
johnjohnlin: 開 optimize 的時候沒差,但是沒有開兩個差很多 03/03 17:12
johnjohnlin: PS 是 C++ iterator 的情況 03/03 17:14
johnjohnlin: 所以我都習慣寫 ++i 03/03 17:14
感謝大大 ※ 編輯: qazkevin (1.161.140.38), 03/03/2019 17:26:49 ※ 編輯: qazkevin (1.161.140.38), 03/03/2019 17:29:07
cole945: 幫幫大家, 哪一公司部門講出來 XD 03/04 10:38
感謝大大,已私
suhorng: 難道是想要問說迴圈倒著跑每次會少一個 cmp 嗎... 03/04 11:32
這個我真不曉得,只記得當時面試官給的提示要看組語 ※ 編輯: qazkevin (1.161.148.46), 03/06/2019 22:58:57
deangood01: 哪間公司 好奇+1 03/07 03:53
Killercat: 我覺得是不是你記錯面試題目了 通常是問++i跟i++哪個快 03/09 11:12
Killercat: 誒我看到你的note了.... 拍寫那當我沒說 XD 03/09 11:13
Killercat: 另外gcc -S就可以把code編譯成組語了 03/09 11:14