2012-01-30 94 views
3

前段時間當我問this question時,FastString單元解決了我的問題。FastString替代Delphi的XE2

現在我開始將我的軟件從D7遷移到XE2。我的問題是,現在有什麼替代方案,因爲看起來FastString不再能解決問題了?

......或者更樂觀地說,德爾福本身是否解決了這個性能問題?

+1

過早優化,我們? ;) - 等到你真的可以確定你有問題。然後回到這裏解決具體問題,人們很可能會提供幫助。 – 2012-01-31 00:01:14

+0

嗨。不完全的。如果你看到我的推薦問題,你可以看到我確實有這個問題。我試圖減少遷移時可能遇到的問題。 – 2012-01-31 00:12:12

+0

我明白你現在擁有了它(或者如果它不是FastString的話),但我的觀點是XE2上的指標可能完全不同。 – 2012-01-31 00:13:31

回答

5

的FastCode程序的地塊已被列入最近德爾福,所以你可能不需要第三方庫了。
嘗試使用股票RTL/VCL,然後看看您是否仍然有問題,以及在新環境中解決問題的最佳解決方案是什麼。

+1

這真的是一個答案嗎?它不提供任何解決方案;在我看來,更多的是對原始問題的評論。 – 2012-01-31 00:33:08

+0

@KenWhite - 我認爲這是一個有效的答案+1。弗朗索瓦說:該怎麼做:在繼續之前先看看他是否有問題。當我問一個問題時,我個人討厭它,所有人都是評論。我想要答案! – lkessler 2012-01-31 00:56:09

+0

@lkessler:我沒有降低評分,但我認爲它不符合回答。 :) – 2012-01-31 00:59:06

2

由於擔心Unicode對Delphi中着名的優秀字符串性能的影響(FastStrings升級到了極限),我在2009年發佈後不久就進行了a series of comparative benchmarking tests comparing Delphi 7, 2007, and 2009測試,並且這些測試包含了一些FastStrings比較。

得出的結論是,儘管是,RTL已經看到了一些顯着的改進,否定了對FastStrings的需求,但是(或者在德爾福2009年時)有一些潛在的「陷阱」在等待捕獲如果你簡單地和天真地認爲一切都很甜蜜,就像在德爾福2009+花園裏一樣。最終,Unicode的開銷從2009年開始減少了很多收益(這不是FastStrings能夠解決的問題,因爲FastStrings中的很多提升依賴於可靠的ANSI字符串特別是不適用於Unicode)。

值得注意的是,自從我考慮過Delphi 2010,XE和XE2以後,我還沒有重新考慮這些測試,現在重複這個練習可能會很有趣,看看這些版本是否還有進一步的改進。

我公司可承接這一次我已經完成準備Smoketest框架 - 這是我最初用來進行測試 - 發佈,通過提供作爲例子。