在开发中遇到过以下情况:
在网页的后台代码中,需要根据获取的数据集来生成客户端HTML代码。
程序中用了大量类似 str += "<td>...</td>" 的代码。
当数据集中的数据量比较小时,网页打开的速度没有太大影响。但是,当数据集中的记录达到500+甚至1000+的时候,打开网页需要几十秒。
将程序中的String用StringBuilder来代替,用StringBuilder.Append()方法来代替 str +=之后,程序的性能提高了很多。打开网页只需要几秒。
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。