【发布时间】:2019-06-10 08:35:37
【问题描述】:
我听说当使用 <= 或 >= 运算符时,编译器会自动对其进行优化:(int)Variable >= 2 变为 (int)Variable > 1。这对于浮点类型是否真的如此?在我看来 (float)Variable >= 2 不能优化到 (float)Variable > 1.999999999 而不走向无穷大,要么导致它不可能或对性能造成影响。 (我知道性能差异可能很小,但这只是我想知道的)
【问题讨论】:
-
所有这些都有cpu指令
JNE如果不相等则跳转,JE如果相等则跳转,JG如果大于则跳转,JLE如果小于或等于则跳转,JL如果小于则跳转,JGE如果大于或等于则跳转。但是,如果这些变量被装箱,您最大的性能损失将是。事实上,如果您有性能问题,为什么不使用基准测试器并自己测试这些东西呢?
标签: c# performance operators