Pessoal,

 

tenho uma aplicação formada basicamente por alguns ClientDataSet, um
DataSource, um DBGrid, um ClientSocket, um ServerSocket. A aplicação fica
ligada o dia todo.

 

O meu cliente me disse que com o passar do tempo ela começa a ficar lenta,
ai ele fecha e abre e volta ao normal. Tudo indicava para consumo de
memória. Aí coloquei um medidor de quanto da memória a aplicação está
consumindo.

 

Pensei que o consumo de memória estava sendo prejudicado pelo ClientDataSet,
que recebe em média 50 registros e depois ele é atualizado por uma hora e
depois recebe um comando que os registros devem ser apagados que o
recebimento de dados vai recomeçar.

 

A única coisa que faço é a seguinte:

 

procedure NewEvent();

var

  i: Integer;

  strTxt: String;

begin

  //Array public deve ser limpo

  for i := 0 to 12 do

    arrEvent[i] := '';

  //ClientDataSet deve ser limpo

  frmMain.cdsDriver.EmptyDataSet;

  frmMain.cdsDriver.Free;

end;

 

Outra coisa que utilizo bastante é a leitura de arquivo INI de configuração
do sistema e uso bastante variáveis StringList, mas sempre que acabo de
usá-las dentro de uma procedure, uso o comando .Free para tirá-los da
memória.

 

Alguém pode me dar mais dicas de como reiniciar o sistema e liberar memória.

 

 

Att,

 

Marcos Ferreira



[As partes desta mensagem que não continham texto foram removidas]

Responder a