Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一个快速的性能/内存问题:
如果有区别,还有什么更好的呢?
这个
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 }
?
完全相同...定义变量(原始/引用)只是计算它将存在的位置(作为堆栈指针的偏移量)。这是由编译器完成的。
我认为它们在组装方面都是相同的(有时只做一个大的堆栈推送比一堆本地变量的推送弹出更快)。在第二种情况下,它只会缩小 x 的范围,即使它们都产生相同的字节码。