C# 三种常用的拼接字符串性能比
本帖最后由 lwjeoi1 于 2013-03-28 06:03:11 编辑
string str1="";
string str2="";
StringBuilder str3=new StringBuilder("");
分别是str1+"" 和 str2.ToString() 和 str3.Append("");
for (int i = 0; i < 9999999; i++)
{
str1 = str1 + "";
//str3 = str2.ToString();
// str3.Append("");
}
+"" 结果
{
第1次0小时 0分 0 秒46 毫秒
第2次0小时 0分 0 秒62 毫秒
第3次0小时 0分 0 秒46 毫秒
第4次0小时 0分 0 秒62 毫秒
第5次0小时 0分 0 秒62 毫秒
第6次0小时 0分 0 秒46 毫秒
第7次0小时 0分 0 秒62 毫秒
第8次0小时 0分 0 秒46 毫秒
第9次0小时 0分 0 秒62 毫秒
第10次0小时 0分 0 秒46 毫秒
}
.ToString() 结果
{
第1次0小时 0分 0 秒62 毫秒
第2次0小时 0分 0 秒62 毫秒
第3次0小时 0分 0 秒78 毫秒
第4次0小时 0分 0 秒62 毫秒
第5次0小时 0分 0 秒62 毫秒
第6次0小时 0分 0 秒62 毫秒
第7次0小时 0分 0 秒62 毫秒
第8次0小时 0分 0 秒62 毫秒
第9次0小时 0分 0 秒62 毫秒
第10次0小时 0分 0 秒78 毫秒
}
StringBuilder 结果
{
第1次0小时 0分 0 秒265 毫秒
第2次0小时 0分 0 秒234 毫秒
第3次0小时 0分 0 秒234 毫秒
第4次0小时 0分 0 秒234 毫秒
第5次0小时 0分 0 秒234 毫秒
第6次0小时 0分 0 秒234 毫秒
第7次0小时 0分 0 秒234 毫秒
第8次0小时 0分 0 秒218 毫秒
第9次0小时 0分 0 秒234 毫秒
第10次0小时 0分 0 秒234 毫秒
}
还有问题不知这一个。
当我把遍历的i 加多一位数 99999999 居然 StringBuilder 被卡死了
以前写代码都是在百度上看看,谁的性能好就用谁,今晚一试,阿弥陀佛,
万能的真主,我一直相信的 StringBuilder 性能怎么那么差啊
------解决方案--------------------拼接字符串StringBuilder 性能要比+高啊
你拼接一个非空字符串试试
------解决方案--------------------我只能说LZ不会用StringBuilder
------解决方案--------------------我觉得是不是每种用法在不同的情况下就有不同的性能,不能绝对的说某一种方法好或者不好,要看使用者的使用方法吧
------解决方案--------------------空字符串,+运算会被优化。