Bei einem ganz einfachen Test war bei mir die normale StringList schneller
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
sl: THashedStringList;
i, X: Integer;
Watch: TStopwatch;
begin
sl := THashedStringList.Create;
sl.Sorted := True;
for i := 0 to 49999 do
sl.Add(TStringUtils.RandomString(60));
sl.Add('ABCABCABC');
for i := 0 to 49999 do
sl.Add(TStringUtils.RandomString(60));
Watch := TStopwatch.Create;
Watch.Start;
for i := 0 to sl.Count - 1 do
begin
sl.Find('ABCABCABC', X); // Absichtlich kein Break, damit alles verglichen wird
end;
Watch.Stop;
ShowMessage(IntToStr(Watch.ElapsedMilliseconds) + 'ms');
sl.Free;
end;
// StringList: ~180ms
// HashedList: ~200ms