unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
FCacheConfigList: THashedStringlist;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
t: Cardinal;
i: Integer;
begin
t := GetTickCount;
for i := 0 to 10000 do
FCacheConfigList.Add(IntToStr(i + 1));
FCacheConfigList.Sort;{问题在这里,第一次排序很快,如果再点击一次Button1就排序很耗时,等待大约5分钟以后排序完成,再点击button1就没问题了}
ShowMessage(IntToStr(GetTickCount - t));
ShowMessage(IntToStr(FCacheConfigList.Count));
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FCacheConfigList := THashedStringlist.Create;
end;end.Delphi 2007和Delphi 2010都存在这样的情况,还没有测试TStringList,各位可以试一试
解决方案 »
- 请问通讯程序的DUNIT单元测试应该怎样写比较好呢?
- 有关adoquery删除记录,adoquery减少,数据库不改变
- 各位来看看,DELPHI 7所有数据库程序,在XP下报Operation not applicable错误!
- TChart中有左右坐标,可以有不同的刻度,但我现在想要3个不同刻度的坐标,一个是0到200,一个是20到50,一个是900到1200,有什么办法可以做
- 有关文件和数据库的
- ADOQuery的使用
- 麻煩一下高手們,下面的代碼主要有什麼用?謝謝
- 请教关于Delphi5中“包”的概念?
- !!!急!急,不小心格式化了硬盘,能恢复吗??
- 如何把memo中的文字保存为一个文本文件(*.text);
- 将delphi开发的系统拷贝到另一台电脑,运行EXE文件,显示应用程序错误
- 用ppReport1控件如何在一张A4纸上打印两联凭证?
FCacheConfigList.Clear;
TStringlist;
都有这样的问题应该不是数据量的问题,因为第二次之后数据量比第二次多,第三,第四.....次就不会这么慢了不清楚什么原因