Comando para limpar a memória residual em Delphi.

DAVID CANDIDO DA SILVA

DAVID CANDIDO DA SILVA Publicado 17/11/2017 


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:


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;


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/

 

Voltar ao topo