字串相加时String和StringBuilder的速度比较
var
Str: string;
T1, T2: LongInt;
T3, T4: LongInt;
T5, T6: LongInt;
T7, T8: LongInt;
iCount: Integer;
SB: System.Text.StringBuilder;
begin
T1 := System.DateTime.Now.Ticks;
for iCount := 0 to 10000 - 1 do
Str := Str + iCount.ToString;
T2 := System.DateTime.Now.Ticks;
T3 := System.DateTime.Now.Ticks;
SB := System.Text.StringBuilder.Create;
for iCount := 0 to 10000 - 1 do
SB.Append(iCount);
Str := SB.ToString;
T4 := System.DateTime.Now.Ticks;
T5 := System.DateTime.Now.Ticks;
SB := System.Text.StringBuilder.create(5000);
for iCount := 0 to 10000 - 1 do
SB.Append(iCount);
Str := SB.ToString();
T6 := System.DateTime.Now.Ticks;
T7 := System.DateTime.Now.Ticks;
SB := System.Text.StringBuilder.Create(10000);
for iCount := 0 to 10000 - 1 do
SB.Append(iCount);
Str := SB.ToString();
T8 := System.DateTime.Now.Ticks;
Memo1.Clear;
Memo1.Lines.Add('使用String类,利用operator + 进行操作');
Memo1.Lines.Add(Convert.ToString((t2 - t1) / 10000));
Memo1.Lines.Add('使用StringBuilder类,不对初始大小赋值');
Memo1.Lines.Add(Convert.ToString((t4 - t3) / 10000));
Memo1.Lines.Add('使用StringBuilder类,对初始大小赋值为申请数量的1/2');
Memo1.Lines.Add(Convert.ToString((t6 - t5) / 10000));
Memo1.Lines.Add('使用StringBuilder类,对初始大小赋值为申请数量');
Memo1.Lines.Add(Convert.ToString((t8 - t7) / 10000));