Как уменьшить память?

Небольшая хитрость для фоновых приложений. К примеру, это быть может планировщик задач... Т.е. имеются ввиду приложения, все время сидящие в памяти, и делающие что-то в фоне, при этом не отвлекая юЗверя от собственных дел...Для такого типа приложений, достаточно важным моментом представляется размер потребляемой ими памяти. Ведь фоновые приложения по минимуму должны занимать обьем оперативной памяти и не давать лишнюю нагрузку на сам процессор. Если подойти, что назвается "с умом", этот способ можно использовать практически во всех приложениях - это также просто и полезно, как пить гранатовый сок. Но для активных интерфейсных приложений делать это не резонно и бесмысленно.
Сам код (работать будет на на WinNT системах):
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;
... или другой вариант (аналог тому, который использует Windows при сворачивании окон):
if Win32Platform = VER_PLATFORM_WIN32_N
T then
SetProcessWorkingSet
Size(GetCurrentProce
ss, $FFFFFFFF, $FFFFFFFF);
Частичный копирайт Code courtesy of Roy Nelson
+4