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

Reply via email to