gpt4 book ai didi

delphi - StringReplace 替代方案可提高性能

转载 作者:行者123 更新时间:2023-12-03 14:40:45 25 4
gpt4 key购买 nike

我使用 StringReplace 在生成的 XML 中用 char 本身替换 > 和 <,如下所示:

StringReplace(xml.Text,'&gt;','>',[rfReplaceAll]) ;
StringReplace(xml.Text,'&lt;','<',[rfReplaceAll]) ;

问题是替换所有出现的 > 需要太长时间。

您是否有更好的想法来使其更快?

最佳答案

如果您使用的是 Delphi 2009,则使用 TStringBuilder 的此操作大约比使用 ReplaceString 快 3 倍。它也是 Unicode 安全的。

我使用了 http://www.CodeGear.com 中的文本将所有出现的“<”和“>”更改为 “<”“>” 作为我的起点。

包括字符串赋值和创建/释放对象,在我的系统上分别花费了大约 25 毫秒和 75 毫秒:

function TForm1.TestStringBuilder(const aString: string): string;
var
sb: TStringBuilder;
begin
StartTimer;
sb := TStringBuilder.Create;
sb.Append(aString);
sb.Replace('&gt;', '>');
sb.Replace('&lt;', '<');
Result := sb.ToString();
FreeAndNil(sb);
StopTimer;
end;

function TForm1.TestStringReplace(const aString: string): string;
begin
StartTimer;
Result := StringReplace(aString,'&gt;','>',[rfReplaceAll]) ;
Result := StringReplace(Result,'&lt;','<',[rfReplaceAll]) ;
StopTimer;
end;

关于delphi - StringReplace 替代方案可提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/139833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com