c# StringBuilder 效率实战(说不定对你有帮助哦)
String 对象是不可改变的。每次使用 System.String 类中的方法之一或进行运算时(如赋值、拼接等)时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。而 StringBuilder 则不会。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
1.它是引用类型,在堆上分配内存
2.运算时会产生一个新的实例
3.String 对象一旦生成不可改变(Immutable)
3.定义相等运算符(== 和 !=)是为了比较 String 对象的值(而不是引用)
以上是结合一些资料的说明 很明显可以发现在组装字符串用StringBuilder是毫不犹豫的
可大家都知道StringBuilder效率高 但是它的Append,AppendFormat比 string str +=效率高多少呢?
由于最近的项目需要,大多都是采用AJAX技术,就需要在中间件传大量的格式化数据到JS层,就顺便做了
一个测试:
在数据较少的时候效率其实差别不大,主要是内存的开销有差别
可数据一旦较大,用StringBuilder.Append要比string str +=快上约30倍.....
这个就很吓人了,当时就呆了一下,所以在这儿说说,希望大家都能够了解,更优化自己的程序,有可能
大家早就知道了!呵呵!那就见笑了! 就当放点儿分吧!