1

一个快速的性能/内存问题:

如果有区别,还有什么更好的呢?

这个

int x;
for (int i = 0; i < 10000; i++)
{
 x = i;
 //do something
}

或这个

for (int i = 0; i < 10000; i++)
{
 int x = i;
 //do something
}

?

4

2 回答 2

3

完全相同...定义变量(原始/引用)只是计算它将存在的位置(作为堆栈指针的偏移量)。这是由编译器完成的。

于 2013-03-08T00:04:33.423 回答
3

我认为它们在组装方面都是相同的(有时只做一个大的堆栈推送比一堆本地变量的推送弹出更快)。在第二种情况下,它只会缩小 x 的范围,即使它们都产生相同的字节码。

于 2013-03-08T00:04:29.527 回答