Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

No caso acima, será criado o arquivo server01.csv, e caso esse já exista, será criado o arquivo AAAAMMDDserver01.csv (A - ano, M - mês, D - dia), com o intuito de manter registrado o dia em que o server foi iniciado e seu registro desde então (para cada reinicialização, em dias diferentes, um novo arquivo será criado). Em caso de não indicar um nome, o arquivo será registrado na pasta do Appserver com o nome AAAAMMDDdefault.csv. O arquivo, ao ser aberto por uma planilha eletrônica, poderá ser visualizado como abaixo:

 

As colunas linhas em A indicam momentos específicos de coletas de dados dos pools de memórias, as colunas em seguida indicam o tipo de memória , e o número de objetos alocados na memória. A partir desse dados, é possível extrair um gráfico do consumo de memória como o exemplo a seguir:

...

Na execução desse exemplo, foi utilizado as chamadas da função ShowinfMem em um programa teste, indicando momentos específicos de inicio e fim, a caráter de debug e analise de código e consumo. Pode-se observar a realização de diversas execuções que se mostraram estáveis no consumo de memória. Para esses casos de debug, a fim de evitar falsos positivos, segue as mesmas recomendações da função ShowInfMem: deve-se realizar o uso apenas de uma thread entre as comparações dos valores retornados pela função evitando processos concorrentes.

Além disso, o mecanismo de monitoramento, graças a chave do MemPoolShrink ativa, registrará nos momentos de compactação da memória do pool, um novo registro no arquivo csv a fim de que o recurso de log não seja utilizado somente em debug de sua aplicação, mas ser logado também na utilização do Appserver como um serviço ou na execução do ERP. Observe por exemplo o casos abaixo:

Image Added

O gráfico mostra metade de um dia em uma operação em um programa que após um alto processamento (também a ser analisado no console.log), o Appserver voltou a alocar o mesmo número de objetos na memória, até então o operador finalizar o ambiente as 18:30. O Appserver, quando realmente não tem mais nenhum usuário no sistema, deve estar com a maioria dos seus pools zerados, ou pode caracterizar algum erro de programação ou sistema.

 

Veja também

DebugThreadUsedMemory, ShowInfMem - ADVPL, ShowInfMem

...