



Este é um procedimento interessante que interage com a API do Windows
para liberar a memória do aplicativo. Esta funcionalidade é fantástica.
É necessário estar declarado Windows e Forms na seção uses,
em versões unicode declare Winapi.Windows e Vcl.Forms.
Segue o código fonte do comando:
1 2 3 4 5 6 7 8 9 10 11 12 | procedure TrimAppMemorySize; var MainHandle: THandle; begin try MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID); SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF); CloseHandle(MainHandle); except end; Application.ProcessMessages; end; |
Exemplo de uso:
1 2 3 4 | procedure TForm1.Button1Click(Sender: TObject); begin TrimAppMemorySize; end; |
Como já dito, este procedimento localiza o processo da aplicação, e limpa
toda memória residual.
Caso sua aplicação for um Serviço, dll ou algo parecido basta remover a
instrução Application.ProcessMessages;
Fonte: www.agnaldocarmo.com.br/home/comando-milagroso-para-reducao-de-memoria-delphi/