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

Проблема с утечкой памяти при работе с большой таблицей   Найти похожие ветки 

← →
big_bugzy   (2003-08-29 13:08) [0]

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


← →
Anatoly Podgoretsky ©   (2003-08-29 13:10) [1]

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


← →
Zacho ©   (2003-08-29 13:16) [2]

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


← →
big_bugzy   (2003-08-29 13:30) [3]

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

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


← →
ZrenBy ©   (2003-08-29 13:32) [4]

CursorLocation = clUseServer


← →
Zacho ©   (2003-08-29 13:34) [5]


> big_bugzy (29.08.03 13:30) [3]

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


← →
Anatoly Podgoretsky ©   (2003-08-29 13:34) [6]

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


← →
big_bugzy   (2003-08-29 13:50) [7]

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

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


← →
big_bugzy   (2003-08-29 13:53) [8]

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


← →
ZrenBy ©   (2003-08-29 14:16) [9]

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

???

Провел тест.

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

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


← →
big_bugzy   (2003-08-29 14:19) [10]

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


← →
ZrenBy ©   (2003-08-29 14:24) [11]

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


← →
big_bugzy   (2003-08-29 14:29) [12]

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

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



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

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



Память: 0.47 MB
Время: 0.016 c
6-71798
Jao
2003-06-30 16:36
2003.09.22
Сокеты. Посылка файла посредстом TcpClient и TcpServer


1-71601
Murad
2003-09-09 13:00
2003.09.22
сервер Ole-документов


1-71677
AlexDBases
2003-09-11 13:32
2003.09.22
Insert bitmap to richedit (TrxRichEdit)


1-71669
Пубертанец
2003-09-11 15:04
2003.09.22
QReport - как программно сохранять и загружать его в Preview?


14-71904
unlx
2003-09-03 13:13
2003.09.22
Простая система офисной почты для локальной сети




   Наверх