所以我的代码当然是所有的遗留代码。它使用现在方便的所有短字符串都变成长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在一些操作中更快,而在其他操作中更慢。
您的程序听起来像是一个有趣的,之前/之后的TStringBuilder进行比较,但我不会做,除了作为一个学术练习。