Форум: "Основная";
Текущий архив: 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]Сделала одну БД в которую записывается раз в секунду данные, и которая постоянно открыта. Все равно размеры программы в памяти увеличиваются.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.022 c