早先只是听说string没有stringBuilder性能高,但却一直不知道原因,今天在看《.NET与设计模式》时,设计模式没怎么懂却意外收获了原因。
先看使用string的情况:
string s = ""; //生成一个对象
s = s + "a"; //又生成一个对象
s = s + "b"; //生成第三个对象
。。。。。。 //每次会生成一个新的对象
再来瞧一瞧stringBuilder:
stringBuilder sb = new stringBuilder();
sb.Append("a");
sb.Append("b"); //在原来对象上增加,没有新建对象
string s = sb.ToString(); //获取字符串
看来两者的性能主要是在对象的新建上,但到底会有多大的性能差别呢?望大家指点……
先看使用string的情况:
string s = ""; //生成一个对象
s = s + "a"; //又生成一个对象
s = s + "b"; //生成第三个对象
。。。。。。 //每次会生成一个新的对象
再来瞧一瞧stringBuilder:
stringBuilder sb = new stringBuilder();
sb.Append("a");
sb.Append("b"); //在原来对象上增加,没有新建对象
string s = sb.ToString(); //获取字符串
看来两者的性能主要是在对象的新建上,但到底会有多大的性能差别呢?望大家指点……