Op Tue, 16 May 2006, schreef Michael Van Canneyt:
> On Tue, 16 May 2006, L505 wrote:
>
> There is no problem with short strings, except for external paths.
>
> What IS a problem is that changing it to ansistrings will significantly slow
> down the compiler.
> For 2 reasons:
>
> 1. It's heap based. There is a lot of memory manager overhead.
> 2. The implicit try...finally in each procedure that uses them introduces a
> memory penalty
> and a speed penalty.
>
> So I would really advise against this change. There is no gain, except maybe
> for some
> external path settings. identifiers etc: there short strings are more than
> enough.
A third reason: Most strings in the compiler are very short. I once did
some statistics, allthough I can't remember the actual values, the
percentage of strings < 8 bytes was well in the double digits.
The reason is that things like "var s,t:string" give very short
identifier strings inside the compiler. Ansistrings are an expensive
overhead here, for example even the 12 byte header counts heavily here.
Daniël
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel