delphi – 什么时候和为什么要使用TStringBuilder?

一年前,我将程序从Delphi 4转换为Delphi 2009,主要是为了跳转到Unicode,而且还可以获得所有这些年Delphi改进的好处。

所以我的代码当然是所有的遗留代码。它使用现在方便的所有短字符串都变成长Unicode字符串,并且我已将所有旧的ANSI函数更改为新的等效项。

但是在Delphi 2009中,他们引入了TStringBuilder类,大概是以StringBuilder类为基础的。

我的程序执行了大量的字符串处理和操作,并可以一次将数百兆字节的大字符串加载到内存中。

我不太了解Delphi的TStringBuilder的实现,但是我听说有些操作比使用认的字符串操作要快。

我的问题是,我是否值得我努力,并将我的标准字符串转换为使用TStringBuilder类。这样做会失去什么?

感谢您的回答,并引导我得出结论,除非需要.NET兼容性,否则不要费心。

在他的博客Delphi 2009 String Performance,Jolyon Smith states

But it looks to me as if TStringBuilder is there primarily as a .NET compatibility fixture,rather than to provide any real benefit to developers of Win32 applications,with the possible exception of developers wishing or needing to single-source a Win32/.NET codebase where string handling performance isn’t a concern.

解决方法

据我所知,TStringBuilder只是为了与.NET和Java的一些平衡而被介绍,似乎比任何主要的进步都要更多地勾选框类型的功能

共识似乎是TStringBuilder在一些操作中更快,而在其他操作中更慢。

您的程序听起来像是一个有趣的,之前/之后的TStringBuilder进行比较,但我不会做,除了作为一个学术练习。

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...