这是:
foreach(Type item in myCollection)
{
StringBuilder sb = new StringBuilder();
}
Run Code Online (Sandbox Code Playgroud)
慢得多:
StringBuilder sb = new StringBuilder();
foreach(Type item in myCollection)
{
sb = new StringBuilder();
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我宣布我的地方真的很重要StringBuilder吗?
那么根据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?