Маленький трюк, который пригодится Вам для создания приложений, работающих в фоновом режиме. Таких, как планировщик задач, служб, серверов и т.п. То есть приложений, которые постоянно сидят себе тихонько в памяти, и чего-то там в фоне делают, не мешая пользователю заниматься своими делами. Для таких приложений важным фактором является размер потребляемой памяти. Фоновые приложения должны кушать минимум оперативной памяти и не нагружать процессор. В принципе, данный приём можно применять в любых приложениях. Просто для активных интерфейсных приложений в этом нет смысла. Но меньше слов, больше кода: 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; После вызова этой процедуры, приложение отпустит всю ненужную ему память. Можете попробовать создать пустую форму с кнопкой и посмотреть, как изменится объём занимаемой памяти. P.S. Сработает только на WinNT системах.