uses
IniFiles;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
fhashTable :THashedStringList;
fTable:TStringList;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}const C_Text= '我爱delphi,delphi真是好啊!';procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
fhashTable :=THashedStringList.Create;
fTable:=TStringList.Create;
for i:=0 to 1000000 do
begin
fhashTable.Add(C_Text+inttostr(i) );
fTable.Add(C_Text+inttostr(i) );
end;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
fhashTable.Free ;
fTable.Free
end;procedure TForm1.Button1Click(Sender: TObject);
var
t0,t1:Cardinal;
i:integer;
s:string;
begin
t0:=GetTickCount;
i:=fhashTable.IndexOf(C_Text+'60000');
t1:= GetTickCount;
if i>-1 then
begin
Label1.Caption:='fhashTable:'+ inttostr(t1-t0) ;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
t0,t1:Cardinal;
i:integer;
s:string;
begin
t0:=GetTickCount;
i:=fTable.IndexOf(C_Text+'60000');
t1:= GetTickCount;
if i>-1 then
begin
Label1.Caption:='fTable:'+ inttostr(t1-t0) ;
end;
end;
end.
请问各位大侠,为什么THashedStringList比TStringList还要慢很多啊???不解中
本来想用THashedStringList提高一下速度,却发现比TStringList还要慢很多,真是意外啊!!!
难道delphi真是玩具吗?请各位大侠多多指教!!!
我的电脑测试结果:fhashTable:891
fTable:47惊人的对比
解决方案 »
- 保存stringgrido为EXCEL不行,保存没提示出错但就是表格中没数据,是什么问题
- Delphi7 怎么打不开了 提示Borland license information was found
- mdac在WIN95/98上安装出现了问题,ADO和ODBC都不能用是怎么了啊!
- 有经验的Delphi程序调试高手进来看看!分多等你拿!
- 如何制作一个IP地址输入框啊,并且能检测输入的正确性?
- 串口通讯的问题
- sunnf接分,原因见里面url
- constructor的用法
- 怎样从串口COM1中读取字符串?
- ?我做了一个三层结构的管理系统,但发布后出现数据库连接失败,请各位高手多多指教!!非常感谢,急急!!!!!!!!!!
- 关于画矩形-----这个代码如何改?
- 求助:image打开的图片很大,怎么才能鼠标左键点击能拖动图片查看?
那要怎样对THashedStringList赋值 才对呢?谢谢啊!!!
网上也有人对两者的效率进行了比较,你可以看看
http://www.iou.cc/read.php?28