http://topic.csdn.net/u/20080828/12/d9664d3b-90f3-4039-a69c-3bc861ac2c9d.html
区别在于:
1.
string s = "";
for (int i=0;i<1000;i++)
s+=i.ToString();
2.
StringBuilder sb = new StringBuilder(3000);//预先分配3000个字符,避免出现容量不足,新建string实例
for (int i=0;i<1000;i++)
sb.Append(i.ToString());
第一种一共出现了:
""(由s = ""产生的程序集共享的string实例)
"0","1"..."999"(1000个由i.ToString产生)
"0","01"..."01...998999"(1000个由+=产生)
总共2001个字符串实例
第二种一共出现了:
"0","1"..."999"(1000个由i.ToString产生)
一个stringbuilder引用的字符串,总共1001个字符串实例
甚少关注性能问题的me,表示很有压力。