gpt4 book ai didi

delphi - 我何时以及为什么应该使用 TStringBuilder?

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

一年前,我将程序从 Delphi 4 转换为 Delphi 2009,主要是为了跳转到 Unicode,同时也是为了获得这些年来 Delphi 改进的好处。

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

但是在 Delphi 2009 中,他们引入了 TStringBuilder 类,该类可能是在 .NET 的 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 - 我何时以及为什么应该使用 TStringBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1585760/

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