[fpc-devel] FPC 3.0 slow strings
Michael Van Canneyt
michael at freepascal.org
Tue Feb 23 13:37:17 CET 2016
On Tue, 23 Feb 2016, Maciej Izak wrote:
> I am active user of mORMot and Zeos, I'd like to forward here important
> message from Google+:
> Any chance to improve this? :
> Original message (author: A. Bouchez):
> FPC 3.0 Strings are SLOW...
> Did you experience this? After introducing of code pages to the String
> process, we discovered a huge slowdown at execution.
> http://wiki.freepascal.org/FPC_Unicode_support is confusing... We were not
> able to find a compilation mode in which the behavior was close to Delphi.
Define 'close to Delphi', because what exactly do you expect ?
The implementation, to our knowledge, is Delphi compatible.
(except that in recent Delphis, string = widestring)
> For instance, the code page of the string constants in source code are
> broken. Or in case of string comparison, RawByteString are converted to the
> current system code page, so are dead slow, and broke most of existing code.
> We had some discussion with ZEOS authors, and they are as concerned as we
> are. See http://synopse.info/forum/viewtopic.php?pid=19498#p19498
> The FPC RTL introduced clearly some performance regressions. A lot of
> hidden charset conversion is done at runtime, for no benefit, and breaking
> all code expectations.
This is definitely something to take into account.
But we cannot simply work out of the blue:
Please submit bug reports with simple examples of cases where you think
unnecessary code conversions are done.
More information about the fpc-devel