.NET中的字符串(5):字符串驻留
StringBuilder对象
通过上面的分析可以看出,String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象。但是这两者之间的差别到底有多大呢?来做一个测试:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 |
1using System; 2using System.Text; 3 4namespace Demo5 5{ 6 /**/ /// <summary> 7 /// String和StringBulider比较 8 /// </summary> 9 public
class Test 10 { 11 public
static void Main( string [] args) 12 { 13 string
a = "" ; 14 StringBuilder s = new
StringBuilder(); 15 16 int
times = 10000; 17 int
start,end; 18 19 /**/ ///测试String所用的时间 20 start = Environment.TickCount; 21 for ( int
i=0;i<times;i++) 22 { 23 a += i.ToString(); 24 } 25 end = Environment.TickCount; 26 Console.WriteLine((end-start)); 27 28 /**/ ///测试StringBuilder所用的时间 29 start = Environment.TickCount; 30 for ( int
i=0;i<times;i++) 31 { 32 s.Append(i.ToString()); 33 } 34 end = Environment.TickCount; 35 Console.WriteLine((end-start)); 36 37 Console.ReadLine(); 38 } 39 } 40} 41 运行结果: 884 0 |
通过上面的分析,可以看出用String来做字符串的连接时效率非常低,但并不是所任何情况下都要用StringBuilder,当我们连接很少的字符串时可以用String,但当做大量的或频繁的字符串连接操作时,就一定要用StringBuilder。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。