亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? containerperformancetests.pas

?? 全世界知名的Open Source Delphi開發組織JCL的作品。JCL包含了很多Delphi和C++Builder中的可重用單元
?? PAS
字號:
unit ContainerPerformanceTests;

interface

uses
  Classes;

procedure TestList(Results: TStrings);
procedure TestJclArrayList(Results: TStrings);
procedure TestJclLinkedList(Results: TStrings);
procedure TestJclVector(Results: TStrings);

procedure TestBucketList(Results: TStrings);
procedure TestJclHashMap(Results: TStrings);
procedure TestHashedStringList(Results: TStrings);
procedure TestJclStrStrHashMap(Results: TStrings);

implementation

{$I jcl.inc}

uses
  SysUtils, Forms, Controls, Math,
  {$IFDEF RTL140_UP}
  Contnrs, IniFiles,
  {$ENDIF RTL140_UP}
  JclContainerIntf, JclArrayLists, JclLinkedLists, JclHashMaps, JclVectors;

const
  ResultFormat = '%.1f ms';
  MsecsPerDay = 24 * 60 * 60 * 1000;

{$IFNDEF RTL140_UP}
const
  SNeedRTL140Up = 'requires RTL > 14.0';
{$ENDIF ~RTL140_UP}

procedure TestList(Results: TStrings);
var
  List: TList;
  I, res: Integer;
  Start: TDateTime;
begin
  Randomize;
  Start := Now;
  List := TList.Create;
  Screen.Cursor := crHourGlass;
  try
    for I := 0 to 2000000 do
      List.Add(Pointer(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to List.Count - 1 do
      Res := Integer(List[I]);
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 200 do
      Res := List.IndexOf(Pointer(Random(1000000)));
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 100 do
      List.Insert(10, Pointer(I));
    Results[4] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[5] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    List.Free;
    Screen.Cursor := crDefault;
  end;
end;

procedure TestJclArrayList(Results: TStrings);
var
  List: IJclList;
  It: IJclIterator;
  I, Res: Integer;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  try
    Start := Now;
    List := TJclArrayList.Create(16, False);
    for I := 0 to 2000000 do
      List.Add(TObject(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    // Fast but Specific ArrayList
    //for I := 0 to List.Size - 1 do
    //  Res := Integer(List.GetObject(I));
    // Slower but same for every IJclList
    It := List.First;
    while It.HasNext do
      I := Integer(It.Next);
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 200 do
      Res := List.IndexOf(TObject(Random(1000000)));
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    It := List.First;
    for I := 0 to 10 do
      It.Next;
    for I := 0 to 100 do
      It.Add(TObject(I));
    Results[4] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[5] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    Screen.Cursor := crDefault;
  end;
end;

procedure TestJclLinkedList(Results: TStrings);
var
  List: IJclList;
  I, Res: Integer;
  It: IJclIterator;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  try
    Start := Now;
    List := TJclLinkedList.Create(nil, False);
    for I := 0 to 2000000 do
      List.Add(TObject(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    It := List.First;
    while It.HasNext do
      I := Integer(It.Next);
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 200 do
      Res := List.IndexOf(TObject(Random(1000000)));
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    It := List.First;
    for I := 0 to 10 do
      It.Next;
    for I := 0 to 100 do
      It.Add(TObject(I));
    Results[4] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[5] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    Screen.Cursor := crDefault;
  end;
end;

procedure TestJclVector(Results: TStrings);
var
  List: TJclVector;
  I, res: Integer;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  Start := Now;
  List := TJclVector.Create(16, False);
  try
    for I := 0 to 2000000 do
      List.Add(TObject(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to List.Size - 1 do
      Res := Integer(List.Items[I]);
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 200 do
      Res := List.IndexOf(TObject(Random(1000000)));
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 10 do
    begin
      System.Move(List.Items[10], List.Items[10 + 1],
        (List.Size - 10) * SizeOf(TObject));
      List.Items[10] := TObject(I);
    end;
    Results[4] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[5] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    List.Free;
    Screen.Cursor := crDefault;
  end;
end;

procedure TestBucketList(Results: TStrings);
{$IFDEF RTL140_UP}
var
  I, Res: Integer;
  Start: TDateTime;
  List: TBucketList;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  Start := Now;
  List := TBucketList.Create(bl256);
  try
    for I := 0 to 100000 do
      List.Add(TObject(I), TObject(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 100000 do
      Res := Integer(List.Data[TObject(Random(100000))]);
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    List.Free;
    Screen.Cursor := crDefault;
  end;
end;
{$ELSE ~RTL140_UP}
var
  I: Integer;
begin
  for I := 1 to 3 do
    Results[I] := SNeedRTL140Up;
end;
{$ENDIF ~RTL140_UP}

procedure TestJclHashMap(Results: TStrings);
var
  Map: IJclMap;
  I, Res: Integer;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  try
    Start := Now;
    Map := JclHashMaps.TJclHashMap.Create(256, False);
    for I := 0 to 100000 do
      Map.PutValue(TObject(Random(100000)), TObject(I));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 100000 do
      Res := Integer(Map.GetValue(TObject(Random(100000))));
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    Map.Clear;
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    Screen.Cursor := crDefault;
  end;
end;

function GenId(Value: Integer): string;
begin
  Result := IntToStr(Value);
end;

procedure TestHashedStringList(Results: TStrings);
{$IFDEF RTL140_UP}
var
  I: Integer;
  Index: Integer;
  List: THashedStringList;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  Start := Now;
  List := THashedStringList.Create;
  try
    for I := 0 to 100000 do
      List.Add(GenId(123));
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 100000 do
      Index := List.IndexOf(GenId(123));
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    List.Clear;
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    List.Free;
    Screen.Cursor := crDefault;
  end;
end;
{$ELSE ~RTL140_UP}
var
  I: Integer;
begin
  for I := 1 to 3 do
    Results[I] := SNeedRTL140Up;
end;
{$ENDIF ~RTL140_UP}

procedure TestJclStrStrHashMap(Results: TStrings);
var
  Map: IJclStrStrMap;
  I: Integer;
  Res: string;
  Start: TDateTime;
begin
  Randomize;
  Screen.Cursor := crHourGlass;
  try
    Start := Now;
    Map := TJclStrStrHashMap.Create(256);
    for I := 0 to 100000 do
      Map.PutValue(GenId(123), '');
    Results[1] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    for I := 0 to 100000 do
      Res := Map.GetValue(GenId(123));
    Results[2] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
    Start := Now;
    Map.Clear;
    Results[3] := Format(ResultFormat, [(Now - Start) * MsecsPerDay]);
  finally
    Screen.Cursor := crDefault;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影在线免费观看| 久久精品人人做人人爽人人| 亚洲国产一区二区在线播放| 91麻豆精东视频| 亚洲一区二区四区蜜桃| 欧美一区二区三区视频免费播放 | 欧美日韩电影一区| 日日夜夜精品视频免费| 亚洲成人精品一区| 欧美一二三四在线| 丰满亚洲少妇av| 亚洲国产视频一区二区| 欧美成va人片在线观看| 国产精品一线二线三线| 亚洲尤物视频在线| 精品国产第一区二区三区观看体验| 粉嫩aⅴ一区二区三区四区| 一区二区免费看| 欧美一级日韩免费不卡| 丁香桃色午夜亚洲一区二区三区| 亚洲欧美日韩电影| 日韩欧美一级特黄在线播放| 成人污污视频在线观看| 亚洲大片精品永久免费| 久久久久亚洲综合| 欧美色区777第一页| 狠狠色丁香久久婷婷综合_中 | 久久免费视频色| 色婷婷av一区二区三区大白胸 | 婷婷成人综合网| 久久久av毛片精品| 欧美色图在线观看| 国产一区二区在线电影| 亚洲国产中文字幕| 麻豆精品国产91久久久久久| 国产精品国模大尺度视频| 欧美一级欧美三级| 91在线观看成人| 国产精品一二一区| 调教+趴+乳夹+国产+精品| 国产精品久久久久婷婷| 2019国产精品| 91精品国产一区二区| 91色porny蝌蚪| 成人爽a毛片一区二区免费| 日韩—二三区免费观看av| 亚洲免费观看高清完整版在线 | 国产一区二区三区在线看麻豆| 亚洲激情自拍偷拍| 国产精品久久久久影院色老大| 精品国产乱码久久久久久1区2区| 欧美私人免费视频| 色呦呦一区二区三区| 国产一区二区三区精品视频| 日本亚洲视频在线| 午夜精品一区二区三区三上悠亚| 亚洲欧洲日产国码二区| 亚洲国产精品二十页| 久久综合五月天婷婷伊人| 91精品国产综合久久久久久漫画 | 亚洲一区二区三区小说| 国产精品理论片在线观看| 久久人人爽爽爽人久久久| 日韩一区二区精品在线观看| 欧美吻胸吃奶大尺度电影| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产成人丝袜美腿| 久久国产精品第一页| 另类中文字幕网| 免费在线成人网| 免费成人美女在线观看.| 日韩精品免费专区| 91网址在线看| 色婷婷精品大在线视频| 91色婷婷久久久久合中文| 一本大道久久精品懂色aⅴ| 波多野结衣一区二区三区 | 欧美日韩免费观看一区二区三区 | 国产精品久久久久一区二区三区| 欧美精品欧美精品系列| 成人激情校园春色| 蜜桃av一区二区| 亚洲成人tv网| 国产精品久久久久久久裸模| 日韩女优电影在线观看| 欧美日韩国产大片| 91麻豆精品在线观看| 成人精品高清在线| 国产麻豆精品久久一二三| 日韩va亚洲va欧美va久久| 亚洲人成亚洲人成在线观看图片 | 日韩国产精品91| 一区二区三区 在线观看视频| 日本一区二区电影| 精品成人佐山爱一区二区| 9191国产精品| 欧美日韩国产片| 91精品1区2区| 99re66热这里只有精品3直播| 国产一区亚洲一区| 国产在线精品一区二区夜色| 日韩av电影一区| 日韩一区精品字幕| 午夜国产精品影院在线观看| 亚洲综合丝袜美腿| 亚洲综合一二区| 亚洲一二三级电影| 亚洲一区二区av在线| 亚洲一区二区三区免费视频| 亚洲啪啪综合av一区二区三区| 亚洲国产成人自拍| 国产精品色一区二区三区| 亚洲国产精品99久久久久久久久| 国产日产精品一区| 国产精品久久久久久久久搜平片| 日本一区二区不卡视频| 国产精品久久久久久久久搜平片 | 欧美一区二区在线免费播放| 欧美午夜精品一区二区三区| 欧美色欧美亚洲另类二区| 正在播放一区二区| 日韩精品最新网址| 久久久久久一级片| 中文字幕在线播放不卡一区| 伊人婷婷欧美激情| 丝袜亚洲另类欧美综合| 久久国产精品免费| 成人丝袜18视频在线观看| 色欧美乱欧美15图片| 欧美女孩性生活视频| 26uuu亚洲婷婷狠狠天堂| 国产精品久久久久久久久免费相片| 中文字幕色av一区二区三区| 亚洲在线观看免费| 久久国产成人午夜av影院| 成人18精品视频| 欧日韩精品视频| 日韩精品最新网址| 中文字幕亚洲综合久久菠萝蜜| 亚洲一区在线观看免费| 久久99精品一区二区三区三区| 岛国av在线一区| 7777女厕盗摄久久久| 国产香蕉久久精品综合网| 夜夜嗨av一区二区三区中文字幕| 奇米精品一区二区三区在线观看| 欧美在线视频你懂得| 国产亚洲女人久久久久毛片| 亚洲与欧洲av电影| 国产不卡视频一区二区三区| 欧美熟乱第一页| 国产亚洲1区2区3区| 亚洲aaa精品| 99re热这里只有精品免费视频| 制服丝袜一区二区三区| 最新日韩av在线| 狠狠狠色丁香婷婷综合激情| 91麻豆高清视频| 欧美不卡123| 亚洲成人资源网| 成人av资源下载| 欧美mv日韩mv| 天堂久久久久va久久久久| 99视频精品在线| 国产欧美日韩另类一区| 日本不卡一二三| 91麻豆国产福利精品| 欧美韩日一区二区三区| 久久精品国产第一区二区三区 | 成人精品在线视频观看| 日韩一区二区三区观看| 一区二区三区中文免费| 成人av手机在线观看| 久久久久成人黄色影片| 日本亚洲免费观看| 欧美日韩黄色一区二区| 中文字幕在线不卡一区二区三区| 国产在线播放一区三区四| 日韩一二三区不卡| 五月婷婷激情综合网| 91福利在线导航| ...av二区三区久久精品| 成人免费看视频| www国产亚洲精品久久麻豆| 麻豆国产精品视频| 欧美久久一二区| 午夜精品免费在线观看| 欧美日韩亚洲综合| 亚洲成av人片在线观看无码| 欧美私人免费视频| 午夜精品在线视频一区| 欧美剧在线免费观看网站 | 欧美一级生活片| 奇米影视7777精品一区二区| 欧美日韩一区二区在线观看| 亚洲成人av一区二区三区| 欧美巨大另类极品videosbest| 婷婷久久综合九色国产成人| 91麻豆精品久久久久蜜臀| 免费亚洲电影在线|