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]