Comando para limpar a memória residual em Delphi.
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; |
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; |
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/
-
InfusTec
-
27.101 views
- 0 comentários
- 18 de abril de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo