字串相加时String和StringBuilder的速度比较

Frank6600 2005-04-29 02:11:01
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));
...全文
334 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
科技互联人生 2005-05-23
  • 打赏
  • 举报
回复
当然是StringBuilder 效率要高咯~

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧