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

TCollection и TCollectionItem   Найти похожие ветки 

 
Still Swamp   (2003-04-14 09:46) [0]

Проблема следующая.

Создаю некие TCollection и TCollectionItem. Добавляю 150тыс элементов. Задержка минимальная. Те ничтожная. Хорошо.

Вызываю Collection.Clear - задержка минут 5-7. С чем это связано?
Есть ли еще какой нибудь споcб работы с длинными списками?


 
malkolinge ©   (2003-04-14 12:13) [1]

procedure TCollection.Clear;
begin
if FItems.Count > 0 then
begin
BeginUpdate;
try
while FItems.Count > 0 do
TCollectionItem(FItems.Last).Free;
finally
EndUpdate;
end;
end;
end;

Не подкопаться :(....А зачем тебе имеено коллекция ?


 
Still Swamp   (2003-04-14 14:58) [2]

угу - и я не подкопался... но как же она долго работает.
а почему коллекция? - удобно. просто раньше с небольшим количеством работал - а сейчас вот косяк случился.


 
malkolinge ©   (2003-04-14 15:23) [3]

В чем жу удобство ? тебе список на стадии разработки приложения нужен ? в дизайн тайме ?


 
REA ©   (2003-04-14 15:33) [4]

Сложно представить коллекцию в виде 150к элементов.
А может задержка собственно в деструкторе?
Вот где профайлер бы пригодился, который Борланд упорно не хочет делать.


 
Юрий Федоров ©   (2003-04-14 15:59) [5]

Судя по коду в деструкторе Item"а идет поиск его в списке и удаление из списка. Видимо, поиск в списке и занимает столько времени.
Почему не использовать TList?


 
malkolinge ©   (2003-04-14 18:16) [6]


> Судя по коду в деструкторе Item"а идет поиск его в списке
> и удаление из списка. Видимо, поиск в списке и занимает
> столько времени.
> Почему не использовать TList?

Сие тайна !



Страницы: 1 вся ветка

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



Память: 0.46 MB
Время: 0.019 c
7-77195
Feofan
2003-03-05 11:21
2003.04.24
Регистрация OCX и DLL программно


3-76755
Адо
2003-04-08 13:42
2003.04.24
задержка в DBGrid при переходе на следующую запись


1-77007
Mop
2003-04-14 04:04
2003.04.24
TTreeView - правая кнопка


4-77220
OxOTHuK
2003-02-24 22:10
2003.04.24
Запуск программы


3-76839
Roka
2003-04-04 21:42
2003.04.24
select and between




   Наверх