当我刚才问this question时,FastString单元来解决我的问题。
现在我开始将我的软件从D7迁移到XE2。我的问题是,我现在有什么替代方案,因为看起来FastString将不再解决问题?
...或者,更乐观的是,Delphi本身是否解决了这些性能问题?
答案 0 :(得分:5)
最近的Delphi中包含了许多FastCode例程,因此您可能不再需要第三方库。
尝试使用库存RTL / VCL,然后查看是否仍有问题以及在新环境中解决问题的最佳解决方案。
答案 1 :(得分:2)
由于担心Unicode对Delphi中着名的优秀字符串性能(FastStrings提升到极端水平)的影响,我在2009年发布之后很快就进行了a series of comparative benchmarking tests comparing Delphi 7, 2007, and 2009,这些测试包括一些FastStrings比较。
结论是,尽管事实是这样,RTL已经看到一些显着的改进,否定了对FastStrings的需求,但是(或者在Delphi 2009时)有一些潜在的“陷阱”等着抓住你如果你只是天真地认为一切都很甜 - 就像Delphi 2009+花园一样。
最终,Unicode的开销从2009年以来消耗了大量的收益(这不是FastStrings可能解决的问题,因为FastStrings中的很多提升都依赖于ANSI字符串的可靠伪像,特别是不适用于Unicode)。
值得注意的是,我从未重新考虑这些测试,现在重复这项练习可能会很有趣,考虑到Delphi 2010,XE和XE2,看看这些版本是否有任何进一步的改进。 / p>
一旦我完成了Smoketest框架的准备工作(我最初用于进行测试 - 发布,我提供了一个例子),我可以这样做。