Форум: "Основная";
Текущий архив: 2002.07.22;
Скачать: [xml.tar.bz2];
ВнизКто хавает память? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c