Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с утечкой памяти при работе с большой таблицей [D5, MSSQL]


big_bugzy ©   (2003-08-29 13:08:00) 

Здравствуйте уважаемые мастера.
У меня такая штука: откраваю в приложении таблицу содержащую ~1.5 млн. записей, иду по каждой записе, и перекачиваю их в другую таблицу предварительно модифицироваф. В диспетчере задачь вижу как используемая память растет со страшной силой. Как этого избежать? я не создаю объектов, не работаю с памятью сам...


big_bugzy   (2003-08-29 14:29:00) [1]

Кажись разобрался
поставил CashSize=10000 и память стала переодически освобождаться... во всяком случае пока...

Еще раз всем спасибо


ZrenBy   (2003-08-29 14:24:00) [2]

А...
Попробуй CursorType := ctOpenForwardOnly


big_bugzy   (2003-08-29 14:19:00) [3]

ZrenBy ©
использую ADODataSet
но с UseServer тормозит зверски...


ZrenBy   (2003-08-29 14:16:00) [4]

>>Пока помогло, но тормозить стало жутко

???

Провел тест.

Голый цикл по 100000 записей с UseClient идет > 1 мин
(не стал ждать-убил)
с UseServer ~ 1 сек

Может ты ADOTable используешь ?


big_bugzy   (2003-08-29 13:53:00) [5]

А может можно ограничить кеш как-нибудь??


big_bugzy   (2003-08-29 13:50:00) [6]

Спасибо всем!

ZrenBy ©
Пока помогло, но тормозить стало жутко :(


Zacho   (2003-08-29 13:34:00) [7]


> big_bugzy (29.08.03 13:30) [3]

Не работал с ADO, так что конкретно ничего сказать не могу. Могу посоветовать посмотреть какие компоненты в ADO не организуют кэш записей.


Anatoly Podgoretsky   (2003-08-29 13:34:00) [8]

Все говоришь правильно, только ничего из этого не свидетельствуе об утечке, тебе для работы нужно как минимум 1 500 000 * размер записи * накладные расходы.


ZrenBy   (2003-08-29 13:32:00) [9]

CursorLocation = clUseServer


big_bugzy   (2003-08-29 13:30:00) [10]

Zacho ©
Я использую адошные компоненты ,у них нет UniDirectional...

Anatoly Podgoretsky ©
Я смотрел только диспетчер задач... память используемая увеличивается и через некоторое время винда начинает говорить что виртуальная память кончается...


Zacho   (2003-08-29 13:16:00) [11]

UniDirectional:=true; решение твоей проблемы.


Anatoly Podgoretsky   (2003-08-29 13:10:00) [12]

Ты уверен, что у тебя есть утечка? Как ты это проверил, кроме наблюдения ща монитором.


Наверх

Титульная страница Поиск, карта сайта Написать письмо