2
glacer 21 天前
大于小于不等于都有对应的汇编指令,都是一个 cpu 指令操作,理论上效率一样。
|
4
InkStone 21 天前 1
这种简单的数字比较的效率就操心了,常见编译器都会给你优化好的。
按语义写就行了 |
5
FYFX 21 天前
没啥区别吧,x86 应该都是 cmp ,cmp 就是做减法然后检查 flag
|
6
billccn 21 天前
大多数构架上只有和 0 比较的操作比非 0 的要省一个减法,其他不管是那种比较耗时都是一模一样的。另外比较操作属于 ALU 执行的,通常就一个时钟周期,这个和比较后面要进行的分支相比属于小巫见大巫,不要去想着优化比较。
|
7
009694 21 天前 via iPhone
我感觉当你真需要考虑比较大于和大于等于效率问题的时候 你的代码甚至不应该用 c 了
|
8
yankebupt 21 天前 1
汇编有 JNZ
其实 1 楼说得好,分支才是要考虑的 关键是跳转,如果跳转分支预测的 cache miss 了,会打断流水线 cpu 去欻欻外层 cache 读数据读指令(你用 C 一般程序不大还好,要是要去内存读东西那就不是几个时钟周期能解决的问题了,非常惨),一堆时钟周期就这么出去了…… |
9
aminobody 21 天前
没区别, 请见汇编
https://godbolt.org/z/bdMzh6j9K |
10
tianshilei1992 20 天前
compiler 会优化的,所以无需担心这种问题
|
11
Austaras 20 天前
sufficiently smart compiler.jpg
|
12
flyqie 20 天前 via Android
有点好奇,是什么场景让你考虑到这个?
还是说只是闲来无事灵机一动? |