Changeset 80 for Generics


Ignore:
Timestamp:
Oct 30, 2010, 7:31:20 PM (14 years ago)
Author:
george
Message:
  • Added: Benchmark for comparasion between classes TStringList and TDictionaryStringString.
Location:
Generics/TemplateGenerics
Files:
1 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • Generics/TemplateGenerics/Demo/Demo.lpi

    r78 r80  
    3838      </Item2>
    3939    </RequiredPackages>
    40     <Units Count="69">
     40    <Units Count="70">
    4141      <Unit0>
    4242        <Filename Value="Demo.lpr"/>
    4343        <IsPartOfProject Value="True"/>
    4444        <UnitName Value="Demo"/>
    45         <EditorIndex Value="11"/>
     45        <EditorIndex Value="12"/>
    4646        <WindowIndex Value="0"/>
    4747        <TopLine Value="1"/>
    4848        <CursorPos X="26" Y="8"/>
    49         <UsageCount Value="53"/>
     49        <UsageCount Value="54"/>
    5050        <Loaded Value="True"/>
    5151        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    6060        <EditorIndex Value="0"/>
    6161        <WindowIndex Value="0"/>
    62         <TopLine Value="302"/>
    63         <CursorPos X="47" Y="319"/>
    64         <UsageCount Value="53"/>
     62        <TopLine Value="411"/>
     63        <CursorPos X="63" Y="428"/>
     64        <UsageCount Value="54"/>
    6565        <Loaded Value="True"/>
    6666        <LoadedDesigner Value="True"/>
     
    184184        <EditorIndex Value="2"/>
    185185        <WindowIndex Value="0"/>
    186         <TopLine Value="246"/>
    187         <CursorPos X="21" Y="273"/>
     186        <TopLine Value="558"/>
     187        <CursorPos X="14" Y="575"/>
    188188        <UsageCount Value="12"/>
    189189        <Loaded Value="True"/>
     
    192192      <Unit17>
    193193        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
    194         <EditorIndex Value="3"/>
     194        <EditorIndex Value="4"/>
    195195        <WindowIndex Value="0"/>
    196196        <TopLine Value="588"/>
     
    211211        <Filename Value="../Specialized/ListDouble.pas"/>
    212212        <UnitName Value="ListDouble"/>
    213         <EditorIndex Value="12"/>
     213        <EditorIndex Value="13"/>
    214214        <WindowIndex Value="0"/>
    215215        <TopLine Value="1"/>
     
    221221        <Filename Value="../Specialized/ListInteger.pas"/>
    222222        <UnitName Value="ListInteger"/>
    223         <EditorIndex Value="13"/>
     223        <EditorIndex Value="14"/>
    224224        <WindowIndex Value="0"/>
    225225        <TopLine Value="1"/>
     
    231231        <Filename Value="../Specialized/ListObject.pas"/>
    232232        <UnitName Value="ListObject"/>
    233         <EditorIndex Value="15"/>
     233        <EditorIndex Value="16"/>
    234234        <WindowIndex Value="0"/>
    235235        <TopLine Value="33"/>
     
    241241        <Filename Value="../Specialized/ListPointer.pas"/>
    242242        <UnitName Value="ListPointer"/>
    243         <EditorIndex Value="17"/>
     243        <EditorIndex Value="18"/>
    244244        <WindowIndex Value="0"/>
    245245        <TopLine Value="1"/>
     
    251251        <Filename Value="../Specialized/TreeString.pas"/>
    252252        <UnitName Value="TreeString"/>
    253         <EditorIndex Value="18"/>
     253        <EditorIndex Value="19"/>
    254254        <WindowIndex Value="0"/>
    255255        <TopLine Value="1"/>
     
    261261        <Filename Value="../Specialized/TreePointer.pas"/>
    262262        <UnitName Value="TreePointer"/>
    263         <EditorIndex Value="19"/>
     263        <EditorIndex Value="20"/>
    264264        <WindowIndex Value="0"/>
    265265        <TopLine Value="1"/>
     
    271271        <Filename Value="../Specialized/TreeObject.pas"/>
    272272        <UnitName Value="TreeObject"/>
    273         <EditorIndex Value="20"/>
     273        <EditorIndex Value="21"/>
    274274        <WindowIndex Value="0"/>
    275275        <TopLine Value="1"/>
     
    281281        <Filename Value="../Specialized/TreeInteger.pas"/>
    282282        <UnitName Value="TreeInteger"/>
    283         <EditorIndex Value="21"/>
     283        <EditorIndex Value="22"/>
    284284        <WindowIndex Value="0"/>
    285285        <TopLine Value="1"/>
     
    300300      <Unit28>
    301301        <Filename Value="../Generic/TreeImplementation.tpl"/>
    302         <EditorIndex Value="22"/>
     302        <EditorIndex Value="23"/>
    303303        <WindowIndex Value="0"/>
    304304        <TopLine Value="1"/>
     
    340340      <Unit32>
    341341        <Filename Value="../Generic/DictionaryImplementation.tpl"/>
    342         <EditorIndex Value="23"/>
    343         <WindowIndex Value="0"/>
    344         <TopLine Value="23"/>
    345         <CursorPos X="1" Y="2"/>
     342        <EditorIndex Value="24"/>
     343        <WindowIndex Value="0"/>
     344        <TopLine Value="4"/>
     345        <CursorPos X="3" Y="6"/>
    346346        <UsageCount Value="25"/>
    347347        <Loaded Value="True"/>
     
    350350      <Unit33>
    351351        <Filename Value="../Generic/DictionaryInterface.tpl"/>
    352         <EditorIndex Value="27"/>
    353         <WindowIndex Value="0"/>
    354         <TopLine Value="1"/>
    355         <CursorPos X="1" Y="9"/>
     352        <EditorIndex Value="28"/>
     353        <WindowIndex Value="0"/>
     354        <TopLine Value="1"/>
     355        <CursorPos X="14" Y="16"/>
    356356        <UsageCount Value="25"/>
    357357        <Loaded Value="True"/>
     
    361361        <Filename Value="../Specialized/DictionaryString.pas"/>
    362362        <UnitName Value="DictionaryString"/>
    363         <EditorIndex Value="28"/>
    364363        <WindowIndex Value="0"/>
    365364        <TopLine Value="1"/>
    366365        <CursorPos X="32" Y="18"/>
    367366        <UsageCount Value="25"/>
    368         <Loaded Value="True"/>
    369367      </Unit34>
    370368      <Unit35>
    371369        <Filename Value="../Generic/StackInterface.tpl"/>
    372         <EditorIndex Value="24"/>
     370        <EditorIndex Value="25"/>
    373371        <WindowIndex Value="0"/>
    374372        <TopLine Value="1"/>
     
    381379        <Filename Value="../Specialized/StackString.pas"/>
    382380        <UnitName Value="StackString"/>
    383         <EditorIndex Value="25"/>
     381        <EditorIndex Value="26"/>
    384382        <WindowIndex Value="0"/>
    385383        <TopLine Value="1"/>
     
    390388      <Unit37>
    391389        <Filename Value="../Generic/StackImplementation.tpl"/>
    392         <EditorIndex Value="26"/>
     390        <EditorIndex Value="27"/>
    393391        <WindowIndex Value="0"/>
    394392        <TopLine Value="1"/>
     
    504502      <Unit50>
    505503        <Filename Value="../Generic/SetInterface.tpl"/>
    506         <EditorIndex Value="5"/>
     504        <EditorIndex Value="6"/>
    507505        <WindowIndex Value="0"/>
    508506        <TopLine Value="1"/>
     
    515513        <Filename Value="../Specialized/SetChar.pas"/>
    516514        <UnitName Value="SetChar"/>
    517         <EditorIndex Value="6"/>
     515        <EditorIndex Value="7"/>
    518516        <WindowIndex Value="0"/>
    519517        <TopLine Value="1"/>
     
    524522      <Unit52>
    525523        <Filename Value="../Generic/SetImplementation.tpl"/>
    526         <EditorIndex Value="4"/>
     524        <EditorIndex Value="5"/>
    527525        <WindowIndex Value="0"/>
    528526        <TopLine Value="1"/>
     
    534532      <Unit53>
    535533        <Filename Value="../Generic/RangeInterface.tpl"/>
    536         <EditorIndex Value="8"/>
     534        <EditorIndex Value="9"/>
    537535        <WindowIndex Value="0"/>
    538536        <TopLine Value="1"/>
     
    545543        <Filename Value="../Specialized/RangeDateTime.pas"/>
    546544        <UnitName Value="RangeDateTime"/>
    547         <EditorIndex Value="9"/>
     545        <EditorIndex Value="10"/>
    548546        <WindowIndex Value="0"/>
    549547        <TopLine Value="1"/>
     
    562560      <Unit56>
    563561        <Filename Value="../Generic/RangeImplementation.tpl"/>
    564         <EditorIndex Value="10"/>
     562        <EditorIndex Value="11"/>
    565563        <WindowIndex Value="0"/>
    566564        <TopLine Value="1"/>
     
    573571        <Filename Value="../Specialized/ListVariant.pas"/>
    574572        <UnitName Value="ListVariant"/>
    575         <EditorIndex Value="7"/>
     573        <EditorIndex Value="8"/>
    576574        <WindowIndex Value="0"/>
    577575        <TopLine Value="2"/>
     
    593591        <Filename Value="../Specialized/ListByte.pas"/>
    594592        <UnitName Value="ListByte"/>
    595         <EditorIndex Value="14"/>
     593        <EditorIndex Value="15"/>
    596594        <WindowIndex Value="0"/>
    597595        <TopLine Value="1"/>
     
    669667      <Unit68>
    670668        <Filename Value="/usr/share/fpcsrc/rtl/inc/objpash.inc"/>
    671         <EditorIndex Value="16"/>
     669        <EditorIndex Value="17"/>
    672670        <WindowIndex Value="0"/>
    673671        <TopLine Value="160"/>
     
    677675        <DefaultSyntaxHighlighter Value="Delphi"/>
    678676      </Unit68>
     677      <Unit69>
     678        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/stringl.inc"/>
     679        <EditorIndex Value="3"/>
     680        <WindowIndex Value="0"/>
     681        <TopLine Value="199"/>
     682        <CursorPos X="3" Y="205"/>
     683        <UsageCount Value="10"/>
     684        <Loaded Value="True"/>
     685        <DefaultSyntaxHighlighter Value="Delphi"/>
     686      </Unit69>
    679687    </Units>
    680     <JumpHistory Count="30" HistoryIndex="29">
     688    <JumpHistory Count="30" HistoryIndex="28">
    681689      <Position1>
    682         <Filename Value="../Specialized/ListObject.pas"/>
    683         <Caret Line="25" Column="24" TopLine="18"/>
     690        <Filename Value="UMainForm.pas"/>
     691        <Caret Line="374" Column="10" TopLine="344"/>
    684692      </Position1>
    685693      <Position2>
    686         <Filename Value="/usr/share/fpcsrc/packages/fcl-base/src/contnrs.pp"/>
    687         <Caret Line="72" Column="26" TopLine="60"/>
     694        <Filename Value="UMainForm.pas"/>
     695        <Caret Line="415" Column="1" TopLine="386"/>
    688696      </Position2>
    689697      <Position3>
    690         <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/lists.inc"/>
    691         <Caret Line="585" Column="9" TopLine="580"/>
     698        <Filename Value="UMainForm.pas"/>
     699        <Caret Line="367" Column="1" TopLine="351"/>
    692700      </Position3>
    693701      <Position4>
    694         <Filename Value="../Generic/ListImplementation.tpl"/>
    695         <Caret Line="345" Column="5" TopLine="342"/>
     702        <Filename Value="UMainForm.pas"/>
     703        <Caret Line="368" Column="1" TopLine="351"/>
    696704      </Position4>
    697705      <Position5>
    698         <Filename Value="../Generic/ListInterface.tpl"/>
    699         <Caret Line="55" Column="60" TopLine="27"/>
     706        <Filename Value="UMainForm.pas"/>
     707        <Caret Line="363" Column="9" TopLine="341"/>
    700708      </Position5>
    701709      <Position6>
    702         <Filename Value="../Specialized/ListObject.pas"/>
    703         <Caret Line="54" Column="28" TopLine="26"/>
     710        <Filename Value="UMainForm.pas"/>
     711        <Caret Line="366" Column="7" TopLine="341"/>
    704712      </Position6>
    705713      <Position7>
    706         <Filename Value="../Specialized/ListObject.pas"/>
    707         <Caret Line="26" Column="20" TopLine="9"/>
     714        <Filename Value="UMainForm.pas"/>
     715        <Caret Line="367" Column="1" TopLine="341"/>
    708716      </Position7>
    709717      <Position8>
    710         <Filename Value="../Specialized/ListObject.pas"/>
    711         <Caret Line="19" Column="27" TopLine="9"/>
     718        <Filename Value="UMainForm.pas"/>
     719        <Caret Line="368" Column="1" TopLine="341"/>
    712720      </Position8>
    713721      <Position9>
    714         <Filename Value="Demo.lpr"/>
    715         <Caret Line="11" Column="10" TopLine="1"/>
     722        <Filename Value="UMainForm.pas"/>
     723        <Caret Line="364" Column="18" TopLine="348"/>
    716724      </Position9>
    717725      <Position10>
    718         <Filename Value="Demo.lpr"/>
    719         <Caret Line="10" Column="38" TopLine="1"/>
     726        <Filename Value="UMainForm.pas"/>
     727        <Caret Line="345" Column="5" TopLine="329"/>
    720728      </Position10>
    721729      <Position11>
    722         <Filename Value="Demo.lpr"/>
    723         <Caret Line="15" Column="1" TopLine="1"/>
     730        <Filename Value="UMainForm.pas"/>
     731        <Caret Line="346" Column="14" TopLine="329"/>
    724732      </Position11>
    725733      <Position12>
    726         <Filename Value="Demo.lpr"/>
    727         <Caret Line="10" Column="20" TopLine="1"/>
     734        <Filename Value="UMainForm.pas"/>
     735        <Caret Line="411" Column="23" TopLine="383"/>
    728736      </Position12>
    729737      <Position13>
    730         <Filename Value="Demo.lpr"/>
    731         <Caret Line="16" Column="3" TopLine="1"/>
     738        <Filename Value="UMainForm.pas"/>
     739        <Caret Line="407" Column="21" TopLine="383"/>
    732740      </Position13>
    733741      <Position14>
    734742        <Filename Value="UMainForm.pas"/>
    735         <Caret Line="87" Column="15" TopLine="77"/>
     743        <Caret Line="376" Column="19" TopLine="349"/>
    736744      </Position14>
    737745      <Position15>
    738         <Filename Value="../Specialized/ListObject.pas"/>
    739         <Caret Line="56" Column="3" TopLine="28"/>
     746        <Filename Value="../Generic/DictionaryInterface.tpl"/>
     747        <Caret Line="26" Column="13" TopLine="1"/>
    740748      </Position15>
    741749      <Position16>
    742         <Filename Value="../Specialized/ListObject.pas"/>
    743         <Caret Line="49" Column="14" TopLine="28"/>
     750        <Filename Value="../Generic/DictionaryImplementation.tpl"/>
     751        <Caret Line="6" Column="3" TopLine="4"/>
    744752      </Position16>
    745753      <Position17>
    746         <Filename Value="../Specialized/ListObject.pas"/>
    747         <Caret Line="56" Column="12" TopLine="28"/>
     754        <Filename Value="UMainForm.pas"/>
     755        <Caret Line="373" Column="8" TopLine="349"/>
    748756      </Position17>
    749757      <Position18>
    750         <Filename Value="../Generic/ListInterface.tpl"/>
    751         <Caret Line="54" Column="46" TopLine="26"/>
     758        <Filename Value="UMainForm.pas"/>
     759        <Caret Line="412" Column="1" TopLine="383"/>
    752760      </Position18>
    753761      <Position19>
    754         <Filename Value="Demo.lpr"/>
    755         <Caret Line="8" Column="26" TopLine="1"/>
     762        <Filename Value="UMainForm.pas"/>
     763        <Caret Line="427" Column="24" TopLine="399"/>
    756764      </Position19>
    757765      <Position20>
    758         <Filename Value="../Specialized/ListObject.pas"/>
    759         <Caret Line="51" Column="11" TopLine="28"/>
     766        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     767        <Caret Line="582" Column="53" TopLine="564"/>
    760768      </Position20>
    761769      <Position21>
    762         <Filename Value="../Specialized/ListObject.pas"/>
    763         <Caret Line="56" Column="1" TopLine="28"/>
     770        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     771        <Caret Line="581" Column="57" TopLine="564"/>
    764772      </Position21>
    765773      <Position22>
    766         <Filename Value="UMainForm.pas"/>
    767         <Caret Line="94" Column="9" TopLine="77"/>
     774        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     775        <Caret Line="579" Column="53" TopLine="564"/>
    768776      </Position22>
    769777      <Position23>
    770         <Filename Value="UMainForm.pas"/>
    771         <Caret Line="96" Column="7" TopLine="77"/>
     778        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/stringl.inc"/>
     779        <Caret Line="183" Column="8" TopLine="177"/>
    772780      </Position23>
    773781      <Position24>
    774         <Filename Value="../Specialized/ListObject.pas"/>
    775         <Caret Line="25" Column="30" TopLine="11"/>
     782        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     783        <Caret Line="575" Column="71" TopLine="551"/>
    776784      </Position24>
    777785      <Position25>
    778         <Filename Value="../Specialized/ListObject.pas"/>
    779         <Caret Line="49" Column="45" TopLine="33"/>
     786        <Filename Value="UMainForm.pas"/>
     787        <Caret Line="427" Column="58" TopLine="399"/>
    780788      </Position25>
    781789      <Position26>
    782790        <Filename Value="UMainForm.pas"/>
    783         <Caret Line="299" Column="17" TopLine="272"/>
     791        <Caret Line="367" Column="12" TopLine="350"/>
    784792      </Position26>
    785793      <Position27>
    786794        <Filename Value="UMainForm.pas"/>
    787         <Caret Line="247" Column="19" TopLine="238"/>
     795        <Caret Line="428" Column="7" TopLine="411"/>
    788796      </Position27>
    789797      <Position28>
    790798        <Filename Value="UMainForm.pas"/>
    791         <Caret Line="273" Column="62" TopLine="257"/>
     799        <Caret Line="349" Column="3" TopLine="332"/>
    792800      </Position28>
    793801      <Position29>
    794802        <Filename Value="UMainForm.pas"/>
    795         <Caret Line="319" Column="32" TopLine="292"/>
     803        <Caret Line="428" Column="35" TopLine="411"/>
    796804      </Position29>
    797805      <Position30>
    798         <Filename Value="UMainForm.pas"/>
    799         <Caret Line="258" Column="45" TopLine="241"/>
     806        <Filename Value="/usr/share/fpcsrc/rtl/objpas/classes/classesh.inc"/>
     807        <Caret Line="575" Column="14" TopLine="558"/>
    800808      </Position30>
    801809    </JumpHistory>
  • Generics/TemplateGenerics/Demo/UMainForm.lfm

    r78 r80  
    1515    Height = 25
    1616    Top = 8
    17     Width = 112
     17    Width = 128
    1818    Caption = 'TListInteger'
    1919    OnClick = ButtonIntegerListClick
     
    2121  end
    2222  object MemoOutput: TMemo
    23     Left = 128
     23    Left = 144
    2424    Height = 384
    2525    Top = 8
    26     Width = 344
     26    Width = 328
    2727    Anchors = [akTop, akLeft, akRight, akBottom]
    2828    ReadOnly = True
     
    3434    Height = 25
    3535    Top = 40
    36     Width = 112
     36    Width = 128
    3737    Caption = 'TListString'
    3838    OnClick = ButtonStringListClick
     
    4343    Height = 25
    4444    Top = 72
    45     Width = 112
     45    Width = 128
    4646    Caption = 'TDictionaryString'
    4747    OnClick = ButtonDictionaryStringClick
     
    5252    Height = 25
    5353    Top = 102
    54     Width = 112
     54    Width = 128
    5555    Caption = 'TQueueInteger'
    5656    OnClick = ButtonQueueIntegerClick
     
    6161    Height = 25
    6262    Top = 134
    63     Width = 115
     63    Width = 129
    6464    Caption = 'TListChar(TString)'
    6565    OnClick = ButtonCharListClick
    6666    TabOrder = 5
    6767  end
    68   object ButtonBenchmark: TButton
    69     Left = 10
     68  object ButtonBenchmarkList: TButton
     69    Left = 8
    7070    Height = 25
    71     Top = 350
    72     Width = 112
    73     Caption = 'Benchmark'
    74     OnClick = ButtonBenchmarkClick
     71    Top = 352
     72    Width = 128
     73    Caption = 'Benchmark list'
     74    OnClick = ButtonBenchmarkListClick
    7575    TabOrder = 6
    7676  end
     
    7979    Height = 25
    8080    Top = 163
    81     Width = 113
     81    Width = 129
    8282    Caption = 'TListObject'
    8383    OnClick = ButtonListObjectClick
    8484    TabOrder = 7
    8585  end
     86  object ButtonBenchmarkDictionary: TButton
     87    Left = 10
     88    Height = 25
     89    Top = 320
     90    Width = 126
     91    Caption = 'Benchmark dictionary'
     92    OnClick = ButtonBenchmarkDictionaryClick
     93    TabOrder = 8
     94  end
    8695end
  • Generics/TemplateGenerics/Demo/UMainForm.pas

    r79 r80  
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    9   ComCtrls, ListInteger, ListString, DictionaryString, QueueInteger, ListChar,
    10   ListPointer, DateUtils, ListVariant, Contnrs, ListObject;
     9  ComCtrls, ListInteger, ListString, DictionaryStringString, QueueInteger, ListChar,
     10  ListPointer, DateUtils, ListObject;
    1111
    1212type
     
    1515
    1616  TMainForm = class(TForm)
     17    ButtonBenchmarkDictionary: TButton;
    1718    ButtonListObject: TButton;
    18     ButtonBenchmark: TButton;
     19    ButtonBenchmarkList: TButton;
    1920    ButtonCharList: TButton;
    2021    ButtonQueueInteger: TButton;
     
    2324    ButtonStringList: TButton;
    2425    MemoOutput: TMemo;
    25     procedure ButtonBenchmarkClick(Sender: TObject);
     26    procedure ButtonBenchmarkDictionaryClick(Sender: TObject);
     27    procedure ButtonBenchmarkListClick(Sender: TObject);
    2628    procedure ButtonCharListClick(Sender: TObject);
    2729    procedure ButtonDictionaryStringClick(Sender: TObject);
     
    132134end;
    133135
    134 function StringPairToStr(Pair: TPairString): string;
     136function StringPairToStr(Pair: TPairStringString): string;
    135137begin
    136138  Result := Pair.Key + ':' + Pair.Value;
     
    139141procedure TMainForm.ButtonDictionaryStringClick(Sender: TObject);
    140142var
    141   Dictionary: TDictionaryString;
     143  Dictionary: TDictionaryStringString;
    142144begin
    143145  MemoOutput.Clear;
    144146  WriteLn('TDictionaryString test');
    145   Dictionary := TDictionaryString.Create;
     147  Dictionary := TDictionaryStringString.Create;
    146148  with Dictionary do try
    147149    Add('Key1', 'Value1');
     
    193195end;
    194196
    195 procedure TMainForm.ButtonBenchmarkClick(Sender: TObject);
     197procedure TMainForm.ButtonBenchmarkListClick(Sender: TObject);
    196198var
    197199  List: TListPointer;
     
    336338  finally
    337339    List2.Free;
     340  end;
     341end;
     342
     343procedure TMainForm.ButtonBenchmarkDictionaryClick(Sender: TObject);
     344var
     345  Dictionary: TDictionaryStringString;
     346  Dictionary2: TStringList;
     347  StartTime: TDateTime;
     348  I: Integer;
     349  R: string;
     350begin
     351  MemoOutput.Clear;
     352  try
     353    Dictionary := TDictionaryStringString.Create;
     354    WriteLn('TDictionaryStringString...');
     355    I := 0;
     356    StartTime := Now;
     357    repeat
     358      Dictionary.Add(IntToStr(I), IntToStr(I));
     359      I := I + 1;
     360    until (Now - StartTime) > OneSecond;
     361    WriteLn('Add pair: ' + IntToStr(Dictionary.Count) + ' ops/sec');
     362    Application.ProcessMessages;
     363
     364    I := 0;
     365    StartTime := Now;
     366    repeat
     367      R := Dictionary.Values[IntToStr(I mod Dictionary.Count)];
     368      I := I + 1;
     369    until (Now - StartTime) > OneSecond;
     370    WriteLn('Values: ' + IntToStr(I) + ' ops/sec');
     371    Application.ProcessMessages;
     372
     373    I := 0;
     374    StartTime := Now;
     375    repeat
     376      R := Dictionary.Keys[I mod Dictionary.Count];
     377      I := I + 1;
     378    until (Now - StartTime) > OneSecond;
     379    WriteLn('Keys: ' + IntToStr(I) + ' ops/sec');
     380    Application.ProcessMessages;
     381
     382    I := 0;
     383    StartTime := Now;
     384    repeat
     385      R := Dictionary.Items[I mod Dictionary.Count].Value;
     386      I := I + 1;
     387    until (Now - StartTime) > OneSecond;
     388    WriteLn('Values by index: ' + IntToStr(I) + ' ops/sec');
     389    Application.ProcessMessages;
     390  finally
     391    Dictionary.Free;
     392  end;
     393
     394  try
     395    Dictionary2 := TStringList.Create;
     396    Dictionary2.NameValueSeparator := '|';
     397    WriteLn('TStringList...');
     398    I := 0;
     399    StartTime := Now;
     400    repeat
     401      Dictionary2.Add(IntToStr(I) + Dictionary2.NameValueSeparator + IntToStr(I));
     402      I := I + 1;
     403    until (Now - StartTime) > OneSecond;
     404    WriteLn('Add pair: ' + IntToStr(Dictionary2.Count) + ' ops/sec');
     405    Application.ProcessMessages;
     406
     407    I := 0;
     408    StartTime := Now;
     409    repeat
     410      R := Dictionary2.Values[IntToStr(I mod Dictionary2.Count)];
     411      I := I + 1;
     412    until (Now - StartTime) > OneSecond;
     413    WriteLn('Values: ' + IntToStr(I) + ' ops/sec');
     414    Application.ProcessMessages;
     415
     416    I := 0;
     417    StartTime := Now;
     418    repeat
     419      R := Dictionary2.Names[I mod Dictionary2.Count];
     420      I := I + 1;
     421    until (Now - StartTime) > OneSecond;
     422    WriteLn('Keys: ' + IntToStr(I) + ' ops/sec');
     423    Application.ProcessMessages;
     424
     425    I := 0;
     426    StartTime := Now;
     427    repeat
     428      R := Dictionary2.ValueFromIndex[I mod Dictionary2.Count];
     429      I := I + 1;
     430    until (Now - StartTime) > OneSecond;
     431    WriteLn('Values by index: ' + IntToStr(I) + ' ops/sec');
     432    Application.ProcessMessages;
     433  finally
     434    Dictionary2.Free;
    338435  end;
    339436end;
  • Generics/TemplateGenerics/TemplateGenerics.lpk

    r77 r80  
    7979      </Item15>
    8080      <Item16>
    81         <Filename Value="Specialized\DictionaryString.pas"/>
    82         <UnitName Value="DictionaryString"/>
     81        <Filename Value="Specialized\DictionaryStringString.pas"/>
     82        <UnitName Value="DictionaryStringString"/>
    8383      </Item16>
    8484      <Item17>
  • Generics/TemplateGenerics/TemplateGenerics.pas

    r77 r80  
    99uses
    1010    ListDouble, ListInteger, ListObject, ListPointer, ListString, TreeInteger,
    11   TreeObject, TreePointer, TreeString, DictionaryString, StackDouble,
     11  TreeObject, TreePointer, TreeString, DictionaryStringString, StackDouble,
    1212  StackInteger, StackObject, StackPointer, StackString, QueueDouble,
    1313  QueueInteger, QueueObject, QueuePointer, QueueString, ListChar, ListVariant,
Note: See TracChangeset for help on using the changeset viewer.