在无限循环性能中声明变量类型?

Art*_*545 5 c# performance scope

那么根据Stack Overflow的一些问题答案,我已经读到了在循环中使用对象声明,比在它之外做它更好,性能方面.

我无法理解为什么,因为当我在循环中使用声明时,我的软件使用更多的RAM,然后是循环外的声明.

while (true) {
    String hey = "Hello.";
}
Run Code Online (Sandbox Code Playgroud)

拉姆使用量:1820kb

String hey;
while (true) {
    hey = "Hello.";
}
Run Code Online (Sandbox Code Playgroud)

拉姆使用量:1720kb

为什么人们说我应该使用第一个循环导致它的性能更好,但是它从RAM中使用了100kb?

Bas*_*Bas 6

当在.NET中的发布模式下运行代码时,由于编译器优化技术称为循环不变代码运动,这两段代码是相同的.JIT优化器中有大量的智能优化技术可以"修复"您的代码.因此,原则上您应该优先考虑代码中的可读性/简单性.


Tho*_*ler 5

两种选择之间绝对没有区别.它们被编译为相同的IL代码.