Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Кто хавает память?   Найти похожие ветки 

 
TTCustomDelphiMaster ©   (2002-07-09 11:48) [0]

Уважаемые коллеги! Както раз я задавал этот вопрос на одном из форумов, но ничего путного мне не ответили. Мобыть вы поможете.

Както делал я программулину, которая ждет часа Ч используя таймер, в час Ч она читает инфу из файла (там написано какую прогу запускать и тд), обрабатывает ее и запускает прогу. Получает ответ о выполнении проги, настраивается на новый час Ч и засыпает.
Так вот захотел я вынести все мозговые функции программулины в dll, чтобы в основное время, когда она спит меньше памяти кушала.
Но получилось так, что при динамическом подключении dll размер памяти занимаемой программулиной увеличивался на 4 кб.
Тогда я провел эксперимент: по таймеру подключал и тут же отключал dll не вызывая никаких функций. Размер памяти занимаемой программой начал быстро увеличиваться по 4 кб и когда я пришел с обкурки (через 5 минут) достиг 30 МБ !!!
Ладно, забил я на dll сделал в exe"шнике. Но и тут интересная штука получилась. После запуска он занимает 1,7 Мб. Через час тоже. Через два тоже. Но на следующее утро занимает уже 430 кБ.

Так вот у меня сложилось впечатление, что память занимаемая локальными переменными и при удалении меродом FREE освобождается не сразу а через некоторое время.

Может ктото сталкивался с такими случаями или знает как это объяснить?


 
Eugene Lachinov ©   (2002-07-09 11:55) [1]

Ini-файлы используются ?


 
TTCustomDelphiMaster ©   (2002-07-09 12:10) [2]

В рабочем варианте да.
А в экперементальном (где 30 МБ отъела) ничего кроме формы, таймера и dll не было.


 
Skier ©   (2002-07-09 12:18) [3]

>TTCustomDelphiMaster
А может у тебя (при использовании DLL) Application.Handle
неправильно настраивается ???


 
IlyaA   (2002-07-09 14:25) [4]

Могу тебе сказать что размер проги уменьшился т.к. её часть (не используемая) упала в Swap, а в памяти осталось только то, что непосредственно используется


 
id_privin   (2002-07-09 14:32) [5]

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


 
Игорь Шевченко ©   (2002-07-09 15:17) [6]

id_privin (09.07.02 14:32)

Где такую траву берешь ?


 
TTCustomDelphiMaster ©   (2002-07-09 15:22) [7]

Оказывается я неудачно выбрал dll для эксперимента

procedure TForm1.Timer1Timer(Sender: TObject);
var
Handle: THandle;
begin
// Использую свою и размер памяти постоянный
Handle := LoadLibrary("mymath.DLL");

// А так размер памяти занимаемой программой увеличивается
// Handle := LoadLibrary("C:\WINDOWS\SYSTEM\KERNEL32.DLL");
FreeLibrary(Handle);
end;


> Игорь Шевченко © (09.07.02 15:17)

Травой уже давно не питаюсь, только bond lights



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

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
3-70620
ioRaptor
2002-07-01 12:28
2002.07.22
Как создать таблицу в отделном файле (InterBase)


1-70726
avr555
2002-07-10 20:47
2002.07.22
Поиск и замена в Word е


3-70580
Егор
2002-06-26 20:51
2002.07.22
Проблема с Lookup field, помогите...


3-70673
_dron_
2002-07-02 12:59
2002.07.22
Как сделать экспорт таблицы из базы Interbase в dbase, paradox


1-70824
Самборский Евгений
2002-07-10 19:33
2002.07.22
Не прямоугольная форма