Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

Растет память, блин....ADO+Access   Найти похожие ветки 

 
Raduga   (2003-10-29 10:52) [0]

Записываю в mdb-файл данные посредством sql( insert ....).
Данные записываются автоматически по таймеру. И заметил, что размер моей проги в памяти постоянно увеличивается. Как с этим бороться. Использую ADO (Jet 4.0).


 
Sandman25   (2003-10-29 11:17) [1]

Данный потом считываются в какой-то Dataset?


 
Raduga   (2003-10-29 11:22) [2]

Потом считываются.
Но память растет и до считывания.


 
Плохиш_   (2003-10-29 11:22) [3]

>Raduga (29.10.03 10:52)

Т.е. сидишь, смотришь на часы и периодически говоришь "INSERT", правильно я понял?
Если "да", причём тут компьютеры, в противном случае ошибка в 17й строке


 
Sandman25   (2003-10-29 11:25) [4]

Query один, я надеюсь, и с параметрами?
Тогда непонятно.


 
sniknik   (2003-10-29 11:26) [5]

а ADOConnection используеш, или строку у query прописываеш? просто без явного указания коннекта он в фоне создается а дальше на усмотрение ADO освобождается когда ему удобно будет (и с условием что его больше ничего не держит).
вообше это не обязательно глюк, даже после уничтожения обьекта ADO может "придерживать" память на всякий случай, а вдруг интенсивная работа и опять создавать его будут, так скорость обеспечивают.


 
Raduga   (2003-10-29 11:29) [6]

>Плохиш_ (29.10.03 11:22) [3]
Нет не правильно.
Слово автоматически тебе о чем- нибудь говорит?
Если "да" то не задавай таких вопросов, в противном случае поясняю: программа работает без участия человека и сохраняет в базу данные через определенный интервал времени.


 
Raduga   (2003-10-29 11:34) [7]

>sniknik © (29.10.03 11:26) [5]
ADOConnection.


 
Плохиш_   (2003-10-29 11:38) [8]

>Raduga (29.10.03 11:29) [6]

читай до конца Плохиш_ (29.10.03 11:22) [3]


 
Raduga   (2003-10-29 11:43) [9]

>Плохиш_ (29.10.03 11:38) [8]
Что за 17 строка?


 
Raduga   (2003-10-29 13:10) [10]

Никто не знает причину, да?


 
Vlad   (2003-10-29 13:19) [11]


> Raduga (29.10.03 13:10) [10]
> Никто не знает причину, да?

Как же ее узнать, если ты толком не объяснил как происходит сие действие.
PS 17-я строка означает - "приведи код" :)))


 
Raduga   (2003-10-29 13:30) [12]

>Vlad © (29.10.03 13:19) [11]
спасибо за объяснение насчет 17 строки :).
Я вот не знал (сделайте хоть специальный раздел, где расшифровываются различные сокрашения - типа словарь спец символов и сокращений :)).

А код такой:

form1.Timer1Timer(Sender: TObject);
var comstr:string;
RecordAffected:integer;
begin

comstr:="insert into AlarmEvents (AEchanelGaugeID,AEDataTimeValue,AELevelValue)";
comstr:=comstr+"VALUES ("1","+floattostr(now)+","+inttostr(val)+")";
dm.ADOConnection1.Execute(comstr,RecordAffected,[eoExecuteNoRecords]);

end;



val -некоторое вычисляемое значение


 
sniknik   (2003-10-29 14:32) [13]

а с чего ты взял что это ADO виновато? ведь это размер твоей проги растет (тока обратил внимание), а не память используемая системой и ADO в частности.

в приведенном коде ничего криминального нет (кроме что именно так не скомпилится изза "1 " и будет ошибку запроса давать изза floattostr(now) (нужно разделитель дробной части менять)).
а так все зашибись (память теряется не в 17 а в 27 строке ;о))
http://podgoretsky.com/ftp/Language/nps/idioms.html


 
Raduga   (2003-10-29 14:34) [14]

Может Jet не напрямую пишет в таблицу, а сначала в кэш, а потом как он заполнится скидывает в таблицу? Хотя сразу после запуска моей проги, открываю Аксесом файл, куда пишется, то там уже есть новые значения.


 
Raduga   (2003-10-29 14:41) [15]

>sniknik © (29.10.03 14:32) [13]
>ошибку запроса давать изза floattostr(now)
Не дает.
>ведь это размер твоей проги растет
Вот именно моей проги. А моя прога не занимает памяти, чтоли?
А в проге только в таймере что-то и происходит (в данном случае запись в базу). Просто если размер моей проги будет постоянно расти, то в один прекрасный момент вылезет сообщение о недостатке памяти и т.д...


 
sniknik   (2003-10-29 15:09) [16]

>>ошибку запроса давать изза floattostr(now)
>Не дает.

а разделитель целой и дробной части в системе что стоит? может тебе повезло и стоит точка но прикинь что будет на другой машине где запятая? простопроанализируй получившийся запрос.

>>ведь это размер твоей проги растет
>Вот именно моей проги. А моя прога не занимает памяти, чтоли?
ADO это COM обьект которым ты управляеш, размер твоей проги от него не зависит (если только он данные тебе не передал.. т.д.), поэтому дели общую память системы и твоей проги.

> Просто если размер моей проги будет постоянно расти, ...
не должен, не от этого куска программы во всяком случае.
может конечно у тебя какието старые компоненты/дельфи/jet поставь последние/апдейты на всякий случай.
и кстати легко проверить, сделай так
// dm.ADOConnection1.Execute(comstr,RecordAffected,[eoExecuteNoRecords]);
не меняя остальной код и проверь, растет размер?


 
Raduga   (2003-10-29 15:16) [17]

>sniknik © (29.10.03 15:09) [16]
>// dm.ADOConnection1.Execute(comstr,RecordAffected,[eoExecuteNoRecords]);
не меняя остальной код и проверь, растет размер?

Уже делал. Если комментирую данную строку, то размер не растет...


 
sniknik   (2003-10-29 15:34) [18]

если делал то почему не написал об этом?

а также о версиях, и системе. вообше ты заметил сколько памяти занимает твоя прога и ее размер на диске? видел разницу, память под нее система выделяет ровно столько сколько нужно. (исключение для запакованых программ)
и как растет? время, динамика роста, совсем не понижается? информацию вытягивать нужно?
это никому кроме тебя не нужно, так что постарайся, опиши подробнее. (у меня к примеру все ok с памятью и ее ростом)


 
Raduga   (2003-10-29 16:06) [19]

Delphi 5 (без Update), XP, Jet 4.0 (тоже без SP).
На диске метр, в памяти 9 с хвостиком.
Динамика роста положительная :). В среднем 4 кб в 5-6 сек. Занимаемая память не падает. (Сегодня на ночь оставлю- тестить).
Рост занимаемой памяти отображается в диспетчере задач.


 
Raduga   (2003-10-30 07:35) [20]

Оставлял на ночь прогу работать...
Размер увеличился до 28 метров.


 
sniknik   (2003-10-30 10:41) [21]

не знаю, сделал то же (только ложит и ничего больше, как ты написал, но без расчетов, естественно), размер 7080-6900-6884 по разному, растет только стачала дальше пляшет вокруг установившегося размера. на ночь не оставлял :о) но около полчаса оно работало.
система w2k sp4, Jet 4 sp7, delphi 7 (апдейты только на хелпы по IB, думаю не влияет ;о)).
в обшем хочеш пришлю скомпиленную узнаеш что виновато дельфи или система. (если у тебя скомпиленное на 7 дельфи будет вести себя по другому...)

а еше почитай что пишут (и подобное часто) про ADO в d5.
http://delphimaster.net/view/3-1067433093/


 
bushmen   (2003-10-30 10:54) [22]

>Raduga

Ты сначала скачай с сайта Borland update"s и посмотри результат.


 
Raduga   (2003-10-30 11:29) [23]

Да уж... апдейт на 25 метров тянет.
Начальник меня повесит :)
схожу лучше в магазин и компашку с Делфями 6(7) куплю, давно собирался на них переходить , да к 5 как то привык.



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

Форум: "Базы";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.012 c
1-65947
staryx
2003-11-11 12:32
2003.11.20
Отслеживание мыши.


8-66016
Puliay
2003-07-16 15:52
2003.11.20
Проигрывание мультимедиа файлов nonstop


1-65823
TUser
2003-11-10 02:38
2003.11.20
Неверный дискриптор


14-66066
Vlad Oshin
2003-10-30 10:17
2003.11.20
А вы про синус...


1-65853
Scordion
2003-11-09 21:26
2003.11.20
Подскажите компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский