149 lines
4.1 KiB
ObjectPascal
149 lines
4.1 KiB
ObjectPascal
unit ContainerPerformanceMain;
|
|
|
|
{$I jcl.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF WIN32}
|
|
Windows, Messages, Graphics, Controls, Forms, Dialogs, StdCtrls,
|
|
{$ENDIF WIN32}
|
|
{$IFDEF LINUX}
|
|
QForms, QStdCtrls, QControls,
|
|
{$ENDIF LINUX}
|
|
SysUtils, Classes, Grids, Menus;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
ListPerformanceGrid: TStringGrid;
|
|
MainMenu1: TMainMenu;
|
|
FileMenu: TMenuItem;
|
|
Exit1: TMenuItem;
|
|
TestMenu: TMenuItem;
|
|
mnJclArrayList: TMenuItem;
|
|
mnList: TMenuItem;
|
|
mnJclLinkedList: TMenuItem;
|
|
mnJclVector: TMenuItem;
|
|
N1: TMenuItem;
|
|
mnBucketList: TMenuItem;
|
|
mnJclHashMap: TMenuItem;
|
|
mnHashedStringList: TMenuItem;
|
|
mnJclStrStrHashMap: TMenuItem;
|
|
N2: TMenuItem;
|
|
mnAllTest: TMenuItem;
|
|
HashPerformanceGrid: TStringGrid;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure mnAllTestClick(Sender: TObject);
|
|
procedure mnListClick(Sender: TObject);
|
|
procedure mnJclArrayListClick(Sender: TObject);
|
|
procedure mnJclLinkedListClick(Sender: TObject);
|
|
procedure mnJclVectorClick(Sender: TObject);
|
|
procedure mnBucketListClick(Sender: TObject);
|
|
procedure mnJclHashMapClick(Sender: TObject);
|
|
procedure mnHashedStringListClick(Sender: TObject);
|
|
procedure mnJclStrStrHashMapClick(Sender: TObject);
|
|
procedure Exit1Click(Sender: TObject);
|
|
public
|
|
end;
|
|
|
|
TMyObject = class(TInterfacedObject);
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
ContainerPerformanceTests;
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
ListPerformanceGrid.Cells[1, 0] := 'TList';
|
|
ListPerformanceGrid.Cells[2, 0] := 'TJclArrayList';
|
|
ListPerformanceGrid.Cells[3, 0] := 'TJclLinkedList';
|
|
ListPerformanceGrid.Cells[4, 0] := 'TJclVector';
|
|
ListPerformanceGrid.Cells[0, 1] := 'Add';
|
|
ListPerformanceGrid.Cells[0, 2] := 'Next';
|
|
ListPerformanceGrid.Cells[0, 3] := 'Random';
|
|
ListPerformanceGrid.Cells[0, 4] := 'Insert at 10';
|
|
ListPerformanceGrid.Cells[0, 5] := 'Clear';
|
|
|
|
HashPerformanceGrid.Cells[1, 0] := 'TBucketList';
|
|
HashPerformanceGrid.Cells[2, 0] := 'TJclHashMap';
|
|
HashPerformanceGrid.Cells[3, 0] := 'THashedStringList';
|
|
HashPerformanceGrid.Cells[4, 0] := 'TJclStrStrHashMap';
|
|
HashPerformanceGrid.Cells[0, 1] := 'Add';
|
|
HashPerformanceGrid.Cells[0, 2] := 'Random';
|
|
HashPerformanceGrid.Cells[0, 3] := 'Clear';
|
|
end;
|
|
|
|
procedure TMainForm.mnAllTestClick(Sender: TObject);
|
|
begin
|
|
TestList(ListPerformanceGrid.Cols[1]);
|
|
Application.ProcessMessages;
|
|
TestJclArrayList(ListPerformanceGrid.Cols[2]);
|
|
Application.ProcessMessages;
|
|
TestJclLinkedList(ListPerformanceGrid.Cols[3]);
|
|
Application.ProcessMessages;
|
|
TestJclVector(ListPerformanceGrid.Cols[4]);
|
|
Application.ProcessMessages;
|
|
|
|
TestBucketList(HashPerformanceGrid.Cols[1]);
|
|
Application.ProcessMessages;
|
|
TestJclHashMap(HashPerformanceGrid.Cols[2]);
|
|
Application.ProcessMessages;
|
|
TestHashedStringList(HashPerformanceGrid.Cols[3]);
|
|
Application.ProcessMessages;
|
|
TestJclStrStrHashMap(HashPerformanceGrid.Cols[4]);
|
|
end;
|
|
|
|
procedure TMainForm.mnListClick(Sender: TObject);
|
|
begin
|
|
TestList(ListPerformanceGrid.Cols[1]);
|
|
end;
|
|
|
|
procedure TMainForm.mnJclArrayListClick(Sender: TObject);
|
|
begin
|
|
TestJclArrayList(ListPerformanceGrid.Cols[2]);
|
|
end;
|
|
|
|
procedure TMainForm.mnJclLinkedListClick(Sender: TObject);
|
|
begin
|
|
TestJclLinkedList(ListPerformanceGrid.Cols[3]);
|
|
end;
|
|
|
|
procedure TMainForm.mnJclVectorClick(Sender: TObject);
|
|
begin
|
|
TestJclVector(ListPerformanceGrid.Cols[4]);
|
|
end;
|
|
|
|
procedure TMainForm.mnBucketListClick(Sender: TObject);
|
|
begin
|
|
TestBucketList(HashPerformanceGrid.Cols[1]);
|
|
end;
|
|
|
|
procedure TMainForm.mnJclHashMapClick(Sender: TObject);
|
|
begin
|
|
TestJclHashMap(HashPerformanceGrid.Cols[2]);
|
|
end;
|
|
|
|
procedure TMainForm.mnHashedStringListClick(Sender: TObject);
|
|
begin
|
|
TestHashedStringList(HashPerformanceGrid.Cols[3]);
|
|
end;
|
|
|
|
procedure TMainForm.mnJclStrStrHashMapClick(Sender: TObject);
|
|
begin
|
|
TestJclStrStrHashMap(HashPerformanceGrid.Cols[4]);
|
|
end;
|
|
|
|
procedure TMainForm.Exit1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
end.
|
|
|