Histórico da Página
...
Uma outra forma de usar esse recurso é junto com a função ShowInfMem, fazendo com que cada chamada especifica no seu programa possa ser logado no arquivo, podendo realizar facilmente o diagnostico dos pontos a serem logados.
Modo de utilização e exemplos de utilização
É necessário que as seguintes chaves de ini sejam ativadas no arquivo appserver.ini:
Bloco de código | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
[GENERAL] ... DebugThreadUsedMemory=1 EnableMemInfoCSV=1 ;A chave abaixo é para indicar um local especifico para geração do relatoriorelatório, opcional MemInfoCSVFile=c:\templogcsv\testeserver01.csv ;O valor da chave abaixo, por padraopadrão, é 1, porem se desativada o recurso do relatório em CSV não terá o efeito desejado MemPoolShrink=1 ; ------------------------ |
No caso acima, será criado o arquivo AAAAMMDDserver01.csv, 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 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. 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.