C# StringBuilder与串联的性能比较
我测试了一个简单的连接:C# StringBuilder与串联的性能比较,c#,asp.net,performance,concatenation,stringbuilder,C#,Asp.net,Performance,Concatenation,Stringbuilder,我测试了一个简单的连接: string res = ""; for (var i = 0; i < 1000; i++) { res += mystring; } return res; 周期越大,使用StringBuilder的性能越好 我想知道这个结果的真正原因,我的意思是,创建、实现一个对象、调用方法比简单的string1+string2要快 字符串是不可变的,因此每个+=mystring都会创建一个新对象。如果您在一个实例上操作,则会产生性能差异。通
string res = "";
for (var i = 0; i < 1000; i++)
{
res += mystring;
}
return res;
周期越大,使用StringBuilder
的性能越好
我想知道这个结果的真正原因,我的意思是,创建、实现一个对象、调用方法比简单的
string1+string2
要快 字符串是不可变的,因此每个+=mystring
都会创建一个新对象。如果您在一个实例上操作,则会产生性能差异。通过配置容量
属性,可以进一步提高性能。您可以在中找到有关此问题的更多信息。阅读Jon Skeet的文章
StringBuilder builder = new StringBuilder();
for (var i = 0; i < 1000; i++)
{
builder.Append(mystring);
}
return builder.ToString();