在某些情况下,我们在变量中有一个值,说X是该变量,我们想要一个if条件,并比较值是否大于0,那么哪个方法将被优化一个。
X> 0或X!= 0
有人可以用逻辑指定。我们可以在C#中举例。
答案 0 :(得分:4)
理想情况下,两个语句最终都将映射到单个CPU指令
jg - jump if greater
jne - jump if not equal
突然间,你的问题变得复杂得多,因为
您不仅需要查看IL代码,还需要查看JIT编译器生成的汇编指令。这使它变得更加复杂:
总而言之:不在乎。 YAGNI,这是过早的优化。
答案 1 :(得分:1)
从技术上讲,这些运营商
X > 0
X != 0
不相等;实际上(在一般情况下)应该在
之间进行选择 X > 0 || X < 0
X != 0
显式和直接比较X != 0
更具可读性,速度更快。如果是内置类型int
,float
,decimal
等,则性能差异可忽略不计。如果用户定义的类方程(==
和!=
)通常比较快(>
,<
; >=
,<=
)通常涉及复杂算法的IComparer<T>
,IComparable<T>
接口。
摘要:坚持X != 0
:
X != 0
很有可能加快速度