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



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

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

yanki 09 Dec 2011 в 00:00 #
Мне не помогло) У меня память съедает Dispatch при загрузки html страницы, а загрузка в таймере и срабатывает каждые три минуты.Хеелп, уже и DocumentController прописала, и процедуру очистки памяти добавила, чистит, но потом программа занимает то же ко-во памяти и также продолжает увеличивать занимаемое место. Кто что может посоветовать?
inick 20 May 2011 в 00:00 #
Очень помогло. Спасибо большое!
CiD 22 Apr 2011 в 00:00 #
Это то все гуд но данная функция освобождает так называемый "рабочий набор" а вот выделенную память она не очищает. Тобиш озушка остаётся засранной) а в случае утечки данная функция вообще бесполезна по вышеуказанной причине. Лучше взять FastMM и выловить утечки а ещё лучше писать корректный код.
новичок 09 Mar 2011 в 00:00 #
мне вообще 12лет. прикольная прога!работает класс! спасибо автору!)))
vachj 28 Jan 2011 в 00:00 #
Тема, советую всем...

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