On Wed, Oct 20, 2010 at 04:54, Sergei Gorelkin <sergei_gorel...@mail.ru> wrote: > Alexander Klenin пишет: >> Benchmarking included 3*10^6 calls to Add and Find methods >> with the arguments of various lengths. >> >> Average string length 5 characters: >> ShortString: 1.15 s >> AnsiString: 1.56 s >> >> Average string length 45 characters: >> ShortString: 12.0 s >> AnsiString: 3.2 s >> >> I agree that the first case is more relevant for the compiler, >> but still you can see that ShortStrings are clearly not always faster. >> > I believe it's not ShortStrings per se to blame, but storing them in a large > single memory block as it is being done in TFPHashList. Adding a lot of keys > will cause many reallocations. Large size of the block forces memory manager > to use variable-size pool, which is less efficient than using fixed-size > blocks in case of small chunks.
Very possible. I have even managed to get a few OutOfMemory errors while testing ShortStrings version. -- Alexander S. Klenin _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel