[fpc-pascal] Is the TFPGMap.KeyData()/TDictionary.TryGetValue() faster than TStringList.Values[]?

silvioprog silvioprog at gmail.com
Thu Jan 14 03:34:02 CET 2016


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?

Thank you!

-- 
Silvio Clécio
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20160113/7a34030e/attachment.html>


More information about the fpc-pascal mailing list