StringBuilder与String字符串连接测试结果,StringBuilder并不是在所有条件下都比String快(不知道是否准确)
今天突然想到StringBuilder在连接很多个字符串时速度很快,但是连接几个字符串时效果如何呢.
做了个测试:
连接多个字符串:
StringBuilder :
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int i = 0; i < 1000000; i++)
{
System.Text.StringBuilder str = new System.Text.StringBuilder();
for (int j = 0; j < 3; j++)
{
str.Append(i.ToString());
}
str.ToString();
}
sw.Stop();
Response.Write(sw.ElapsedMilliseconds);
sw.Start();
for (int i = 0; i < 1000000; i++)
{
System.Text.StringBuilder str = new System.Text.StringBuilder();
for (int j = 0; j < 3; j++)
{
str.Append(i.ToString());
}
str.ToString();
}
sw.Stop();
Response.Write(sw.ElapsedMilliseconds);
String:
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int i = 0; i < 1000000; i++)
{
string str = string.Empty;
for (int j = 0; j < 3; j++)
{
str += j.ToString();
}
}
sw.Stop();
Response.Write(sw.ElapsedMilliseconds);
sw.Start();
for (int i = 0; i < 1000000; i++)
{
string str = string.Empty;
for (int j = 0; j < 3; j++)
{
str += j.ToString();
}
}
sw.Stop();
Response.Write(sw.ElapsedMilliseconds);
测试结果 String比StringBuilder快
当我把 for (int j = 0; j < 3; j++)改成 for (int j = 0; j < 100; j++)时
String比StringBuilder慢
也不知道是否准确