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

Reply via email to