Учимся освобождать занимаемую программой память на 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



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

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

GrenCode 09 Jul 2008 в 00:00 #
vit0d Мне не известен! Если вы гуру программист, то не забывайте что среди таких как вы есть и новички и им данный способ не известен!

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