On Wed, Oct 20, 2010 at 05:36, Michael Van Canneyt <[email protected]> wrote: > On Wed, 20 Oct 2010, Alexander Klenin wrote: >> On Wed, Oct 20, 2010 at 01:45, Michael Van Canneyt >> <[email protected]> wrote: >>> Try and improve that class with ansistrings. If you succeed, only then we >>> can start making a case for using them in the compiler. >> >> Ok, I went ahead and have taken look at the code. >> I assume you speak about TFPHashList vs TFPCustomHashTable. >> The classes are not really comparable, because they use quite >> different internal data structures. > > But they perform the same function; hash on string with an > associated data structure.
Sure, but in a very different manner. Look at the code yourself if you do not believe me ;-) >> 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'm always open for benchmark tests. > > Can you please send me your test and the implementation ? > I'd like to see when the balance shifts. Sure, see attachment. Note that I made shortstring->ansistring text replacament followed by minimal fixed to get working Add and Find methods. Other methods may be broken as a result. -- Alexander S. Klenin
ansi_hashlist.7z
Description: Binary data
_______________________________________________ fpc-devel maillist - [email protected] http://lists.freepascal.org/mailman/listinfo/fpc-devel
