Ir para conteúdo
  • Cadastre-se

dev botao

TACBrCargaBal Memory Leak (vazamento de memória)


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

Recommended Posts

O procedure GerarArquivos da classe TACBrCargaBal, contem cindo variaveis do tipo TStringList, as mesmas estão sendo criadas mas somente as três primerias estão sendo removidas da memoria. Eu adicionei duas linhas para remover as variaveis da memoria, como no codigo abaixo. Seria interessante adicionar a remoção das variaveis da memoria e disponibiliza no projeto acbr para as proximas atualizações. 

 

procedure TACBrCargaBal.GerarArquivos(const ADiretorio: String);
var
  Produto, Setor, Receita, Nutricional: TStringList;
  RelacaoProdutoNutricional, RelacaoProdutoReceita: TStringList;
  NomeArquivo: TFileName;
  Total: integer;
begin
  if Trim(ADiretorio) = EmptyStr then
    raise EACBrCargaBal.Create(ACBrStr('Informe o diretório onde serão gerados os arquivos de carga!'));

  if not DirectoryExists(ADiretorio) then
    raise EACBrCargaBal.Create(ACBrStr('Diretorio informado não existe!'));

  if Self.Produtos.Count = 0 then
    raise EACBrCargaBal.Create(ACBrStr('Não foram informados os produtos para a geração!'));

  Produto := TStringList.Create;
  Produto.Clear;

  Setor := TStringList.Create;
  Setor.Clear;

  Receita := TStringList.Create;
  Receita.Clear;

  Nutricional := TStringList.Create;
  Nutricional.Clear;

  RelacaoProdutoNutricional := TStringList.Create;
  RelacaoProdutoNutricional.Clear;

  RelacaoProdutoReceita := TStringList.Create;
  RelacaoProdutoReceita.Clear;

	...

    Progresso('Terminado', Total, Total);
  finally
    FreeAndNil(Produto);
    FreeAndNil(Setor);
    FreeAndNil(Receita);
    FreeAndNil(Nutricional);
    {
    Por: Pascoal de Castro. Em 19/11/2016.}
    FreeAndNil(RelacaoProdutoNutricional);
    FreeAndNil(RelacaoProdutoReceita);
  end;

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2684 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.