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



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

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

Apollon 02 Dec 2009 в 00:00 #
Я только начинаю Уверен в будущем пригодится!
Va-Bank 03 Jun 2009 в 00:00 #
Реально помогает. Я тоже не новичек, но о таком не знал, да и не искал способы :) пустая форма в памяти более 5 метров весит, с этой процедурой всего 2 метра. № метра экономии :) (Delphi2009)
ThePro1994 08 May 2009 в 00:00 #
vit0d
Известен далеко не всем!!!
Сайт прикольный,очень много нашел для себя полезного
Роман 02 Feb 2009 в 00:00 #
Всьо ето хорошо..но если бы урок был бы з обяснениямы...вот например-SetProcessWorkingSetSize-надо для того то, где MainHandle делает то и то..
Miha 22 Jan 2009 в 00:00 #
Да я, например, не новичок, но про эту фишку не знал. Кто особо много знает, может не читать, автор сайта вроде не заставляет насильно это делать

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