问题描述
嗨
这似乎是一个疯狂的问题,但我想知道是否有人
知道这两个条件中的哪一个更好(更快,更小的内存占用,可以通过编译器等进行优化。)
1- if(i 0){//做东西}
2- if(i> = 1){//做东西}
谢谢。
-
Mahdi。
Hi
This seems like a crazy question but I wanted to find out if anyone
knows which one of those two conditions are better (faster, smaller
memory footprint, can be optimized by the compiler, etc..)
1- if(i 0) {// do stuff}
2- if(i >=1) {// do stuff}
Thanks.
--
Mahdi.
推荐答案
他们都在我的机器上使用相同的x86代码。
public static void Main(string [] args)
{
for (int i = 0;我< 10; i ++)
{
if(i 0)i ++;
if(i> = 1)i ++;
}
}
中间的代码变为:
if(i 0)i ++;
0000001a test esi,esi
0000001c jle 0000001F
0000001e inc esi
if(i> = 1 )i ++;
0000001f test esi,esi
00000021 jle 00000024
00000023 inc esi
Alun Harford
They both get jitted to the same x86 code on my machine.
public static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
if (i 0) i++;
if (i >= 1) i++;
}
}
The code in the middle becomes:
if (i 0) i++;
0000001a test esi,esi
0000001c jle 0000001F
0000001e inc esi
if (i >= 1) i++;
0000001f test esi,esi
00000021 jle 00000024
00000023 inc esi
Alun Harford
应该绝对没有区别。
-
Rudy Velthuis
Quotation承认自卑。 - Ralph Waldo Emerson
There should absolutely be no difference.
--
Rudy Velthuis http://rvelthuis.de
"Quotation confesses inferiority." -- Ralph Waldo Emerson
这篇关于哪一个更快/更好>或> =的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!