今天突然想到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慢
也不知道是否准确