Ir para conteúdo
  • Cadastre-se

dev botao

Out of Memoria quando gero o Sintegra com ACBrSintegra


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

Recommended Posts

Galera, estou tendo problemas de Out of Memory quando gero o Sintegra usando o ACBrSintegra, quando entra no loop para gerar o registro 54 ele consome muita memoria rapidamente.

E assim que estou gerando o registro 54.

wregistro54 := TRegistro54.Create;

     wregistro54.CPFCNPJ := CNPJ;

     wregistro54.Modelo   := QyCompra.Fields.FieldByName('MODELO').AsString;

     wregistro54.Serie      := QyCompra.Fields.FieldByName('SERIE').AsString;

     wregistro54.Numero   := num_nf;

     wregistro54.Cfop       := QyItensC.Fields.FieldByName('CFOP').AsString;

     wregistro54.CST        := QYItensC.Fields.FieldByName('CST').AsString;

     wregistro54.NumeroItem := cont;

     wregistro54.Codigo        := QyItensC.Fields.FieldByName('CODPRO').AsString;

     wregistro54.Quantidade := QyItensC.Fields.FieldByName('QUANTIDADE').AsFloat;

     wregistro54.Valor          := QYItensC.Fields.FieldByName('TOTAL').AsFloat;

     wregistro54.ValorDescontoDespesa := QYItensC.Fields.FieldByName('VLDESCONTO').AsFloat;

     wregistro54.BasedeCalculo := QyItensCBCICMS.Value;

     wregistro54.BaseST   := BCSUBST;

     wregistro54.ValorIpi   := QyItensC.Fields.FieldByName('VLIPI').asfloat;

     wregistro54.Aliquota  := QyItensC.Fields.FieldByName('ICMS').AsFloat;

     ACBrSintegra.Registros54.Add(wregistro54);

     /////////////////////////////////    

     // tentei fazer isso para ver se libera memoria mas nao resolveu

     //////////////////

     wregistro54.Free;

     Sleep(10);

     Application.ProcessMessages;

Já tentei instanciar na memoria o wregistro54 antes de entrar no loop mas continuou a mesma coisa, o mais engraçado e que usando uma DLL paga para gerar o Sintegra nao tenho esse problema de memoria, uso as mesmas querys e o mesmo loop a unica coisa que muda e quando gero os registros.

Se alguem souber de alguma coisa que possa me ajudar eu agradeço muito.

Att,

Wilson Camargo

Mac Sistemas

Link para o comentário
Compartilhar em outros sites

  • Consultores

Acho que o ACBrSintegra não tem geração de arquivo concomitante. O que provavelmente ocorre então, é que o seu arquivo sintegra é muito grande e não está dando para capturar memória suficiente.

No quando da mensagem de erro, quanto de memória está sendo usada no computador pelo seu programa? quanto ainda há livre?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Minha maquina tem 2GB de ram, tenho um total disponivel de + - 1.2GB + 800mb de cache do sistema.

quando abro meu aplicativo que gera o sintegra ele consome em media 9.600 K da memoria, quando eu inicio a geração do arquivo e ele entra no loop do registro 54 das compras +- 250 registros, ele começa a aumentar o cosumo de memoria rapidamente chegando a 26.000K (é quando ele da a msg de Out of Memory).

To sem saber o que fazer, ja me falaram para trocar a dll rlink32 do Delphi, o consumo de memoria melhorou mas nao resolveu, antes dava o out of memory no registro 60 +- e depois que troquei a dll da no registro 100 +-...

Nao sei qual tratamento poderia fazer para amenizar isso.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Qual a versão do Delphi?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Você utiliza o FastMM?

Em caso negativo, adicione ele ao seu projeto. Provavelmente já vai melhorar bastante.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Para usar ele é fácil:

Coloque a unit do FastMM como a primeira unit após a seção uses no seu arquivo de projeto (.dpr).

Normalmente isso já basta. Procure mais informações no arquivo FastMM4_Readme.txt (uso no projeto), FastMM4_FAQ.txt (perguntas frequentes) e FastMM4Options.inc (opções de configuração)

O FastMM é um gerenciador de memória que substitui o gerenciador de memória do Delphi. Ele corrige um monte de erros, e também permite procurar leaks de memória.

Um artigo interessante sobre o assunto é o abaixo.

http://wiert.me/2009/07/29/delphi-fastm ... roduction/

Mas se não mudar nada, favor dar mais detalhes do seu método de execução.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • 10 meses depois ...
  • Consultores

Qual a versão do seu Delphi? Você tentou utilizar o FastMM conforme sugerido no post?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Delphi7 , Windows XP e com o FastMM ainda nao tentei . ate ai ver com o amigo se resolvel pra ele utilizando o FastMM ... até assim . nao entendo muito bem da diferença da

geração do acbrSPED para AcbrSintegra , mais sera que é possivel implementar a opcao de Concommitante no Sintegra , pois se tiver , vou estudar e tentar implementar , ou

pela estrutura não seria possivel , se nao é possivel ai realmente teria que utilizar o FastMM ...

 

Desde já Agradesço

 

 

Adilson Pazzini

Link para o comentário
Compartilhar em outros sites

  • Consultores

É muito mais fácil usar o FastMM do que fazer qualquer outra coisa... Como mencionei no post anterior, basta acrescentar ele no arquivo .dpr do seu projeto como primeira unit na clausula uses. Se não der certo, aí você tenta outra coisa.

 

O FastMM é tão superior ao gerenciador padrão de memória do Delphi, que foi incorporado nas versões mais posteriores.

 

Contudo, se preferir fazer o contrário, tentando implementar a opção concomitante no sintegra, é uma decisão sua, fique à vontade. Qualquer dúvida estamos à disposição.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

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