Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- {$IFDEF FPC}
- {$mode delphi}
- {$ENDIF}
- {$APPTYPE CONSOLE}
- uses
- {$IFDEF FPC}
- FGL
- {$ELSE}
- System.Generics.Collections
- {$ENDIF},
- Classes, SysUtils;
- type
- TMyList = class({$IFDEF FPC}TFPGMap{$ELSE}TDictionary{$ENDIF}<string, string>)
- end;
- const
- COUNT = 5000;
- FMT = 'hh:nn:ss.zzz';
- var
- I: Integer;
- B, E: TDateTime;
- Name: string = '';
- Value: string = '';
- SL: TStrings;
- LS: TMyList;
- begin
- SL := TStringList.Create;
- LS := TMyList.Create;
- try
- B := Now;
- // add name and value
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- SL.Add(Name + '=' + Name);
- end;
- // get value from name
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- Value := SL.Values[Name];
- end;
- E := Now;
- SL.Clear;
- WriteLn(SL.ClassName, ': ', FormatDateTime(FMT, E - B));
- B := Now;
- // add name and value
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- LS.Add(Name, IntToStr(I));
- end;
- // get value from name
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- Value := LS[Name];
- end;
- E := Now;
- LS.Clear;
- WriteLn(LS.ClassName, ': ', FormatDateTime(FMT, E - B));
- B := Now;
- // add name and value
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- LS.Add(Name, IntToStr(I));
- end;
- // get value from name
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- Value := LS[Name];
- end;
- E := Now;
- LS.Clear;
- WriteLn(LS.ClassName, ': ', FormatDateTime(FMT, E - B));
- B := Now;
- // add name and value
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- SL.Add(Name + '=' + Name);
- end;
- // get value from name
- for I := 1 to COUNT do
- begin
- Name := IntToStr(I);
- Value := SL.Values[Name];
- end;
- E := Now;
- SL.Clear;
- WriteLn(SL.ClassName, ': ', FormatDateTime(FMT, E - B));
- WriteLn('Press [ENTER] to exit ...');
- ReadLn;
- finally
- SL.Free;
- LS.Free;
- end;
- end.
RAW Paste Data