作者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/cn.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