Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
ВнизЭксперимент с TreeView Найти похожие ветки
← →
F1 (2002-11-20 13:48) [0]Сделал вот такую штучку, чтоб посмотреть на быстродействие TreeView, так получается, что если много всего добавить, а потом удалить, то в целом скорость резко падает!!! ПОЧЕМУ???
С самого начала с Clear и BeginUpdate делалось 30 мс, а потом 100!!! Какого {EZ!!!
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var i:Integer;
Tick:DWORD;
begin
Tick:=GetTickCount;
if CheckBox1.Checked then TreeView1.Items.BeginUpdate;
if CheckBox2.Checked then TreeView1.Items.Clear;
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
if CheckBox1.Checked then TreeView1.Items.EndUpdate;
Label1.Caption:=IntToStr(GetTickCount-Tick);
end;
← →
Андрей Прокофьев (2002-11-20 13:52) [1]Может, сначала Clear чистить-то было нечего, а во второй раз надо удалить 101 узел?
← →
F1 (2002-11-20 13:55) [2]>Андрей Прокофьев © (20.11.02 13:52)
Совсем за ламера считаешь :)
Нет, все при равных условиях!
Первый раз, когда Tree пустой я отбрасывал!
← →
F1 (2002-11-20 14:03) [3]Короче вот такой код с каждым разом работает дольше!
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var i:Integer;
Tick:DWORD;
begin
//-------------
TreeView1.Items.BeginUpdate;
for i:=0 to 1000 do
TreeView1.Items.Add(Nil, IntToStr(i));
TreeView1.Items.Clear;
//--------------
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
Label1.Caption:=IntToStr(GetTickCount-Tick);
TreeView1.Items.EndUpdate;
//Начал отсчет времени
Tick:=GetTickCount;
TreeView1.Items.BeginUpdate;
TreeView1.Items.Clear;
for i:=0 to 100 do
TreeView1.Items.Add(Nil, IntToStr(i));
TreeView1.Items.EndUpdate;
//Вывел время
Label1.Caption:=IntToStr(GetTickCount-Tick);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.02;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c