Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];




Вниз

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


Лана Розанова   (2002-04-16 12:21) [0]

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



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

Приведи код



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

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



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

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;



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

REA

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

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



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

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

Лучше
Table1.Append;

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

[vcache]
MinFileCache=16384
MaxFileCache=16384



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

Anatoly Podgoretsky

[vcache]
MinFileCache=16384
MaxFileCache=16384

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



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

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



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

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



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

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



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

Anatoly Podgoretsky

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



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

;



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

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



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

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



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

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




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.026 c
14-2667           Feruza                2002-03-21 13:12  2002.05.02  
Помогите начать работать с Дельфи


4-2709            alexey1               2002-02-27 12:40  2002.05.02  
Вопрос на использование функции FindWindowEx


1-2603            Лана Розанова         2002-04-19 21:18  2002.05.02  
MediaPlayer


7-2694            VSDesign              2002-02-06 07:07  2002.05.02  
Сканирование из Delphi


1-2530            Room 666              2002-04-21 15:28  2002.05.02  
Применение функции проверки...