先贴源代码
本来在研究--i和++i在for循环中的效率问题,结果发现循环条件使用<要快于<=,>和>=同理,运行时间打印和反汇编如下:
优化之后,运行时间打印和反汇编如下:
本人汇编接触不是很多,感觉上面的情况不是很好理解,因为实际上优化之后>=在判断的地方比>少了一条test语句,应该是ADD操作之后修改了SF标志,JNS条件转移指令根据SF==0来转移,为什么速度还不如多了一条test指令的使用>的循环。
而对于++i使用的<和<=,比较都是用的cmp,我在想是不是条件转移指令的不同导致的,小弟对底层了解不多,工作才一年多,但是对技术底层很感兴趣,希望各位技术大牛们有时间解决一下我的问题,欢迎讨论和批评。
注:反汇编只贴了--i的部分