On Wed, 13 Jan 2016, silvioprog wrote:
Hello, I need two fast list features: Add(Key: string, Value: string); Get(Key: string, Value: string): string; So, I took a look at the `TFPGMap` (and `TDictionary` on Delphi) class. It is really a very nice option. But I tested the `TStringList` class too, and I was suprised with its performance. Please, run this small test in your environment (my env. is: FPC 3.1.1 / Delphi Seattle, both generating a 32 bits EXE): http://pastebin.com/vxwhD9W0 FPC result: TStringList: 00:00:14.988 TMyList: 00:00:00.187 TMyList: 00:00:00.219 TStringList: 00:00:15.204 Press [ENTER] to exit ... *(Delphi result:* *TStringList: 00:00:10.859* *TMyList: 00:00:00.016* *TMyList: 00:00:00.003* *TStringList: 00:00:11.453* *Press [ENTER] to exit ...**)* Is this test wrong, or is the `TStringList.Values[]` really slow?
TStringList.Values is extremely slow, this is known. It performs a simple linear search.
- THashedStringList from inifiles should be faster for name=value. - for simple key=value pairs, contrns contains various hash lists. You can include them in your tests to get a more complete picture. Michael. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal