加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:13:50 所属栏目:大数据 来源:网络整理
导读:一年前,我将程序从Delphi 4转换为Delphi 2009,主要是为了跳转到Unicode,而且还可以获得所有这些年Delphi改进的好处。 所以我的代码当然是所有的遗留代码。它使用现在方便的所有短字符串都变成长Unicode字符串,并且我已将所有旧的ANSI函数更改为新的等效
一年前,我将程序从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进行比较,但我不会做,除了作为一个学术练习。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读