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