Вниз
Скачать: 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
3-4186
Domkrat
2002-11-12 12:14
2002.12.02
Работа с большими обьемами данных


6-4550
Alex_ustasu
2002-10-03 17:19
2002.12.02
ClientSocket не видит ServerSocket, если указан Service


1-4347
pusher
2002-11-22 09:36
2002.12.02
Грабли с передачей строки в С++ DLL


1-4355
Ag2002
2002-11-20 18:45
2002.12.02
Иконки


7-4639
Terrible
2002-09-27 17:35
2002.12.02
Сплайсинг функций ядра на Delphi ?




   Наверх