111,094
社区成员




if (i > 10000000)
return "quit";
else
return i.ToString();
也要回收200多次,不过比sb.Equals(sb2)
StringBuilder快一半时间class Program
{
static int i = 0;
// static string bbb;
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
string aaa = "";
GC.Collect();
while (true)
{
// bbb += aaa;
aaa = StrReceiveFromNet();
if (string.Compare("quit", aaa) == 0)
{
break;
}
}
Console.WriteLine("垃圾回收次数:{0},内存{1}", GC.CollectionCount(0), GC.GetTotalMemory(false));
Console.ReadKey();
}
static string StrReceiveFromNet()
{
i++;
if (i > 100000)
return "quit";
else
return "noQuit";
}
}
用StringBuilder垃圾回收次数多的吓人,内存占用离谱,由于aaa没有+=根本不会因为StrReceiveFromNet运算次数多而增加内存,一百万次也没有一次垃圾回收。看来什么东西不能想当然