Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia pessoal;

Estava realizando alguns testes de uso de memória.

Quando envia uma nfce ela aumenta o consumo de memória, porém ao terminar o envio não libera, fica aumentando a cada envio.

Pesquisando no fórum não achei relatos, isso acontece com algum de vocês também?

 

Agradeço

Atenciosamente

Caetano

'Juntos podemos mais'

Postado

Boa tarde Régis.

Testei agora a tarde com o exemplo, ocorre o mesmo problema, não esta liberando a memória depois do envio.

Quando inicio o Exemplo ele fica com uso em torno de 2.100k, logo após enviar a primeira nfce ele já pula para 12k e depois sobe a cada envio ou até mesmo quando outro método for executado, sem liberar em nenhum momento.

Resumindo, para clientes que ficam com o sistema o dia inteiro aberto emitindo nfce, imagina no final do dia. Pelo que percebo algo esta ficando prezo na memória.

 

Seria bom, todos verificarem em seus sistemas.

Agradeço plea antenção

Atenciosamente

Caetano

'Juntos podemos mais'

  • 2 semanas depois ...
  • Moderadores
Postado

Tentem colocar no DPR do Demo:

 

ReportMemoryLeaksOnShutDown := True;

 

E façam testes de envio....

 

depois ao fechar o DEMO será apresentado os Leaks que poderão estar consumindo a memoria durante a execução.

 

[]´s

João Henrique de Souza

 

Manual de como configurar o TortoiseSVN para não ficar mostrando a senha repetidas vezes (somente para commiters):

https://sourceforge.net/p/forge/community-docs/TortoiseSVN/

 

 

Postado
Bom dia.
Segue o retorno, a cada nfce emitida aumenta o consumo, este eu fiz com emissão de 6 notas e já estava em 40.000 K.
 
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:
 
 
 
1 - 12 bytes: TIniFile x 1
 
29 - 36 bytes: UnicodeString x 1
 
45 - 52 bytes: UnicodeString x 2
 
53 - 60 bytes: UnicodeString x 1
 
85 - 92 bytes: TStringList x 1
 
101 - 108 bytes: UnicodeString x 1
 
117 - 124 bytes: UnicodeString x 1, Unknown x 1
 
 
---------------------------
OK   
---------------------------.
 
Agradeço

Atenciosamente

Caetano

'Juntos podemos mais'

  • 9 meses depois ...
Postado

Comigo acontece a mesma coisa, e não adianta eu tentar destruir o componente e criar de novo, pois a memória continua alocada e não baixa! Principalmente quando é em uma NF-e com muitos produtos, o método que consome mais memória é o "ACBrNFe.NotasFiscais.Valida", ele aloca muita memória e não volta, mesmo eu destruindo o componente do ACBr. Alguém está passando pelo mesmo? Tem alguma solução para isto? Utilizo o Delphi XE3.

  • 7 meses depois ...
  • Moderadores
Postado
32 minutos atrás, Cezar disse:

Esse problema foi resolvido?

Qual seria o problema? sua aplicação está dando vazamento de memória?

veja que parou na metade do ano passado e não foi reportado mais nada!

caso queira habilitar o memory leak e descobrir se tem algo por favor fique a vontade!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 5 meses depois ...
Postado
Em 15/02/2016 at 12:06, Juliomar Marchetti disse:

Achei que estivesse com problema de vazamento de memória!

Bom dia 

estava realizando teste agora estou com a revisão 12039 e apresentou o problema de aumento de memoria. segue como realizei o teste 

abri o demo do acbr olhei a memoria estava em 3.720 K logo apos cliquei no botao Gerar NFe a memoria foi para 8.076 depois cliquei no botao validar xml a memoria foi para 16.556.  e a cada geração ele so vai aumentando. acrescentei um botão no demo so pra dar um Free e mesmo assim a memoria não abaixou alguem mais notou esse comportamento e conseguiu resolver. sei que o topico é antigo mas pelo visto esse problema permanece.

escrevi o ocorrido pois nao conseguiu colar a imagem

  • Moderadores
Postado
1 minuto atrás, leandroaoa disse:

ninguem mais realizou esses teste e percebeu o aumento de memoria ?

Bom dia!

em 20 horas meio difícil alguém passar e lhe dar a resposta esperada!

mas não tive o problema está a relatar acima!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
1 hora atrás, Juliomar Marchetti disse:

Bom dia!

em 20 horas meio difícil alguém passar e lhe dar a resposta esperada!

mas não tive o problema está a relatar acima!

desculpe mas não quis tumultuar o forum so queria saber se alguem realizou o teste. 

consegui colar as imagens na imagem 1 eu so abri o demo veja a memoria como esta. Na imagem 2 eu cliquei no botao gerar NFe veja pra onde foi a memoria.

Sem título.png

Sem título 2.png

  • 1 mês depois ...
Postado

Alguém chegou a alguma conclusão ??

Estou com o mesmo problema,      ReportMemoryLeaksOnShutdown := true; no form principal do projeto e retorna vazamento.

 

  • 8 meses depois ...
Postado

Pessoal, bom dia!

Estou usando uma procedure no meu agente de autorização da notas chamada TrimAppMemorySize, não sei se é a forma com que eu implementei o agente mas a memória estava sempre aumentando progressivamente conforme alguns relatos, chegando a travar a aplicação. Agora após cada 'rodada' de processamento eu chamo ela e o exe de 20 mb de memória baixa para 0,5 mb.

Citar

 

procedure TFrmPrincipal.TrimAppMemorySize;
var
  MainHandle : THandle;
  cIDProcess : Cardinal;
  fw,pid:dword;
begin
  fw:=findwindow(nil,PWideChar(FrmPrincipal.Caption)); //Nome do processo 

  if fw = 0 then
    cIDProcess  := 0
  else
  begin
      getwindowthreadprocessid(fw,@pid);
    cIDProcess  := pid;
  end;

  try
    MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, cIDProcess) ;
    SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF) ;
    CloseHandle(MainHandle) ;
  except
  end;

  Application.ProcessMessages;
end;

 

 

  • Membros Pro
Postado
3 horas atrás, mbbortolini disse:

Pessoal, bom dia!

Estou usando uma procedure no meu agente de autorização da notas chamada TrimAppMemorySize, não sei se é a forma com que eu implementei o agente mas a memória estava sempre aumentando progressivamente conforme alguns relatos, chegando a travar a aplicação. Agora após cada 'rodada' de processamento eu chamo ela e o exe de 20 mb de memória baixa para 0,5 mb.

 

Bom dia

Tive diversos problemas com relação a esse problema no final do ano passado.

Depois de muito pesquisar, passei a usar o TrimAppMemoySize que ajudou bastante, porém não resolveu 100% o problema. No meu caso uso Delphi 7. Passei a usar o Fastm4 que resolveu de uma vez por todas isso..

Da uma pesquisada sobre como utilizar esse FastM4, aqui no fórum tem um tópico sobre isso..

 

  • 2 semanas depois ...
Postado

Boa tarde.

Essa função que o @mbbortolini citou é de fato milagrosa. Já tinha conhecimento da mesma e inclusive a utilizamos em nosso sistema.

Porém, não se deixem enganar! Se existe um crescimento do uso de memória pela aplicação, procurem verificar por vazamentos de memória (Memmory Leaks). Para isso, a dica do colega @Dércio Luis Zanatta cai como uma luva. Atualmente utilizamos esse pacote (FastMM4) para reportar os vazamentos de memória que a aplicação teve ao decorrer de sua execução.

Ao meu ver, o fato de que o consumo de memória do aplicativo aumenta após realizar determinada chamada é normal, pois o S.O aloca novos blocos de memória para a criação de objetos. O que não vem a ser normal é um crescimento constante dessa utilização de memória mesmo após a liberação dos objetos criados.

  • Membros Pro
Postado (editado)
Em ‎16‎/‎06‎/‎2017 at 16:10, felipetomm disse:

Boa tarde.

Essa função que o @mbbortolini citou é de fato milagrosa. Já tinha conhecimento da mesma e inclusive a utilizamos em nosso sistema.

Porém, não se deixem enganar! Se existe um crescimento do uso de memória pela aplicação, procurem verificar por vazamentos de memória (Memmory Leaks). Para isso, a dica do colega @Dércio Luis Zanatta cai como uma luva. Atualmente utilizamos esse pacote (FastMM4) para reportar os vazamentos de memória que a aplicação teve ao decorrer de sua execução.

Ao meu ver, o fato de que o consumo de memória do aplicativo aumenta após realizar determinada chamada é normal, pois o S.O aloca novos blocos de memória para a criação de objetos. O que não vem a ser normal é um crescimento constante dessa utilização de memória mesmo após a liberação dos objetos criados.

Bom dia

Só para complementar. O uso do FastMM4 não serve apenas para localizar possíveis vazamentos de memória. Na minha opinião o uso do FastMM4 otimiza em muito o gerenciamento de memória que não é muito satisfatório por parte do Delphi. No meu caso, por exemplo, não existia nenhum vazamento de memória, porém o crescimento da memória conforme o uso do aplicativo crescia sem parar. O simples fato de compilar o FastMM4 junto na minha aplicação ( com algumas configurações que não lembro agora)  tornaram a otimização de memória muito mais eficaz.

Editado por Dércio Luis Zanatta
  • Curtir 2
  • Moderadores
Postado
18 minutos atrás, Dércio Luis Zanatta disse:

Só para complementar. O uso do FastMM4 não serve apenas para localizar possíveis vazamentos de memória. Na minha opinião o uso do FastMM4 otimiza em muito o gerenciamento de memória que não é muito satisfatório por parte do Delphi. No meu caso, por exemplo, não existia nenhum vazamento de memória, porém o crescimento da memória conforme o uso do aplicativo crescia sem parar. O simples fato de compilar o FastMM4 junto na minha aplicação ( com algumas configurações que não lembro agora)  tornaram a otimização de memória muito mais eficaz.

Qual versão do Delphi está usando?

O FastMM é integrado ao Delphi desde o Delphi 2006.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado
Agora, BigWings disse:

Qual versão do Delphi está usando?

O FastMM é integrado ao Delphi desde o Delphi 2006.

No meu caso, fez muita diferença pelo fato de eu usar Delphi 7, mas recomento o uso do FastMM4 nas versões mais atuais do Delphi tb. Na prática parece funcionar melhor !

  • Membros Pro
Postado
6 horas atrás, Dangelo Porto disse:

Ainda não consegui fazer esse FastMM4 funcionar, não entendi direito o que ele faz, pois no demo tem um monte de coisas que não sei por onde começar

Boa tarde ..

Não sei como colocar um link de um post aqui, mas procura por ACBR X ALOCÃÇÃO DE MEMÓRIA. La vai ter toda a discussão que me levou a usar o FastMM4

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