Ir para conteúdo
  • Cadastre-se

dev botao

Comando milagroso para redução de memória Delphi funciona mesmo?


Ver Solução Respondido por xyberx,
  • Este tópico foi criado há 3127 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

http://www.agnaldocarmo.com.br/home/comando-milagroso-para-reducao-de-memoria-delphi/

estou testando a função abaixo

realmente ela liberar a memória de uso no meu caso de 80 mega para 12 mega.


A duvida é porque este milagre? existe algo por trás?
realmente a memória ram é liberada? não e mudado para o arquivo de swap?

Alguém sabe algo, se funciona porque nunca foi falado, usou o delphi desde o dephi 2.0?



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;

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
  • Solution

 Em partes sim, porém os programas abertos as vezes tem alocações que o SysOP deixa alocada a memória para re-uso.

 Esse comando força a liberação dessa memória de re-uso, deixando somente a memória alocada disponível.

 Mais ao re-usar uma determinada função a memória é alocada novamente. Em termos de performance é quase imperceptível a re-alocação, mais dá uma limpa no carregamento da aplicação considerável.

 Não funciona em Windows Server 2008 abaixo do R2, em alguns casos com Delphi XE8 que uso não funcionou também, e em APP's 64 Bits funcionou algumas vezes e outras não.

 Fiz os testes com thread criadas para testar a eficiência do código acima para não colocar algo desnecessário no nosso sistema. o comando acima deve ser colocado numa thread ou em um timer para sempre ficar limpando a memória como um coletor de lixo.

 VLW

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3127 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.