Delphi-Quellcode:
var
lDict: TObjectDictionary<TObject, integer>;
lSw : TStopwatch;
begin
lDict := TObjectDictionary<TObject, integer>.Create( [ doOwnsKeys ] );
try
lSw := TStopwatch.StartNew;
while lDict.Count < 1000000 do
begin
lDict.Add( TObject.Create, 0 );
end;
lSw.Stop;
finally
lDict.Free;
end;
ShowMessage( lSw.ElapsedMilliseconds.ToString( ) );
end;
dauert
179ms.
Die Langsamkeit ist somit hausgemacht und wird wohl an einer schlechten Hash-Funktion (langsam bzw. zu viele Kollisionen) liegen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)