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

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

Обрезание хвостов.


Лана Розанова ©   (2002-04-16 12:21:00) 

Всем привет.
Проблема состоит в следующем:
При циклическом опросе с интервалом в 1 сек. за единицу времени происходит вызов базы данных, дополнение ее новой строкой и ее закрытие. На следующем шаге происходит вызов другой БД и так N-раз. Так вот. Программа потихоньку набирает вес в памяти, а это недопустимо из-за ее круглосуточной работы.
Может кто поможет справиться с этим?
СПАСИБО!!!


Лана Розанова   (2002-04-20 20:19:00) [1]

Сделала одну БД в которую записывается раз в секунду данные, и которая постоянно открыта. Все равно размеры программы в памяти увеличиваются.


Толик   (2002-04-18 13:40:00) [2]

to Лана Розанова ©:
1. Если используется компонент TTable, то BDE используется всегда (конечно если TTable - компонент от Borland).
2. "...При циклическом опросе с интервалом в 1 сек. за единицу времени происходит вызов базы данных..." - это каждую секунду открывается и закрывается база??? Если это так, то проблема скорее всего здесь. Дело в том, что открытие и закрытие БД - процесс довольно долгий для одной секунды, м.б. здесь и происходит утечка ресурсов (открыли, закрыть не успели, а открываем снова), IMHO. М.б. имеет смысл базу держать открытой постоянно, а по мере надобности туда всё записывать?


Елена   (2002-04-18 13:03:00) [3]

Я, конечно, могу ошибаться, но если используется Table, который унаследован от TBDEDataSet, то и BDE используется.


Лана Розанова   (2002-04-18 12:14:00) [4]

;


Лана Розанова   (2002-04-18 12:11:00) [5]

Anatoly Podgoretsky

Пробовала, но все равно идет накопление. Может проблема в самой WinNT?


Anatoly Podgoretsky   (2002-04-17 14:12:00) [6]

В дополнение к ответу gek цифры это минимальный и максиальный размере кеша в килобайтах, и чем больще памяти на компьютере, тем хуже себя ведет кеш, увеличивать размер не рекомендую


gek   (2002-04-17 10:36:00) [7]

Ну Anatoly Podgoretsky правильно написал
А все это дело ставить в с:\windows\system.ini
По умолчанию там пустой блок [vcache]


REA   (2002-04-17 10:30:00) [8]

Уверены, что не используете BDE? Файл-то вроде db (Paradox)


Лана Розанова   (2002-04-16 16:33:00) [9]

Anatoly Podgoretsky

[vcache]
MinFileCache=16384
MaxFileCache=16384

Объясните пожалуйста, где это написать?


Anatoly Podgoretsky   (2002-04-16 15:26:00) [10]

В твоем коде нет ничего криминальногоЮ только вот вместо
Table1.Last;
Table1.Insert;

Лучше
Table1.Append;

Возможно проблема действительно в дисковом кеше, это характерно для Win9x, но с ним можно бороться так

[vcache]
MinFileCache=16384
MaxFileCache=16384


Лана Розанова   (2002-04-16 14:53:00) [11]

REA

Где это такое - MaxFileCache в System.ini?
И где поставить в BDE поставить LocalShare = True если я не использую BDE?

Может вопросы некорректны, но я что-то не понимаю.


Лана Розанова   (2002-04-16 14:47:00) [12]

Anatoly Podgoretsky

Table1.DatabaseName:=MyPath+"DBChartDan\"+dates;
Table1.TableName:=dates+"("+inttostr(i1)+").db";
Table1.Active:=true;
FormatDateTime(LongTimeFormat,Now);
Table1.Last;
Table1.Insert;
Table1Time.Value:=timetostr(time);
Table1Referense.Value:=ParMot[1];
Table1FeedBack.Value:=ParMot[2];
Table1Freq.Value:=ParMot[3];
Table1Curr.Value:=ParMot[4];
Table1PowerW.Value:=ParMot[5];
Table1PowerHP.Value:=ParMot[6];
Table1VoltM.Value:=ParMot[7];
Table1VoltDC.Value:=ParMot[8];
Table1TempM.Value:=ParMot[9];
Table1TempVLT.Value:=ParMot[10];
Table1PulseRef.Value:=ParMot[11];
Table1TempRad.Value:=ParMot[12];
Table1.Post;
Table1.Close;


REA   (2002-04-16 13:25:00) [13]

Урежь файловый кэш: MaxFileCache в System.ini
по-умолчанию такой настройки нет и виндовс жрет память.
и базу закрывать кстати не обязательно, если в BDE поставить LocalShare = True


Anatoly Podgoretsky   (2002-04-16 12:23:00) [14]

Приведи код


Наверх

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