Учимся освобождать занимаемую программой память на Delphi

Опубиковано: 08.05.2008 г., автор: , просмотров: 50775

Пример, который я сейчас хочу вам показать, применим только для программ работающих в фоновом режиме (для других в этом просто нет смысла). Т.е программ, которые постоянно сидят в памяти и не мозоля глаза пользователю занимаются своими делами. Данный delphi исходник подойдет при создания троянов, вирусов, планировщика задач и.т.д. Для таких приложений крайне важным является объем потребляемой памяти, и разработчик должен свести его к минимуму.
Переходим к коду:

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

uses Windows, SysUtils;

procedure TrimWorkingSet;
var
MainHandle: THandle;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID);
SetProcessWorkingSetSize(MainHandle, DWORD(-1), DWORD(-1));
CloseHandle(MainHandle);
end;
end;

Пользуйтесь на здоровье !

Code courtesy of Roy Nelson ( rnelson@inprise.com), Inprise European Professional Support
From Delphi Magazine article "Slimming the fat off your Apps" by Hallvard Vassbotn, hallvard@falcon.no



Похожие материалы

Последние из рубрики

Super cat 15 Feb 2010 в 00:00 #
Надо поставить эту функцию на таймер с интервалом 10 и все. Размер минимальный.
дмитрий 14 Feb 2010 в 00:00 #
ппц люди проигрыватель висел в памяти в 10 метров

а теперь он 680 килобайт висит

спасибо большое

а использование данной процедуры ничему плохому не приведёт? может будут наблюдаться недачёты?
отпишитесь если она убавляет какие то возможности буду знать на будущее ))
Игорь 03 Feb 2010 в 00:00 #
Lemon2009
Я тоже заметил этот момент,
Тоже сделал на кнопку ради интереса и когда изменяю размер действительно размер памяти увеличивается.Появилась идея поставить этот код на Timer.Так вот, однако получилось.Если поставить интервал на 100 то вроде очень даже не чего получается.
Lemon2009 22 Jan 2010 в 00:00 #
Создал форму на нем одна кнопка и она запускает эту процедуру очистки. После нажатия размер уменьшается 2мб -> 400 кб. Потом меняю размеры формы и занимаемая память начинает увеличиваться 2->4->..mb вот такой вот интересный момент
ппапа 18 Dec 2009 в 00:00 #
Как открыть Delphi, что ззначит открыть Delphi, помогите

ОтменитьДобавить комментарий