Вниз
Скачать: CL | DM;

Эксперимент с 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-4427
yozhik
2002-11-18 17:15
2002.12.02
Обновление программы


1-4436
Tano
2002-11-18 02:20
2002.12.02
Что такое Самоадресуемая запись?


14-4617
Бегинер
2002-11-12 19:06
2002.12.02
Хостинг?...


1-4267
Corte ™
2002-11-19 16:32
2002.12.02
Как открыть TreeView root


8-4521
kima
2002-08-10 15:37
2002.12.02
gradient




   Наверх