hmartins Posted November 25, 2023 at 03:48 PM Report Share #632203 Posted November 25, 2023 at 03:48 PM Boas, Alguem me pode dizer se o grafico de consumo de heap abaixo é normal? Este garfico de consumo da app a ser executada durante 1 dia e meio +/-. A aplicaçao basicamente faz a mesma coisa durante todo o tempo, que no fundo é de x em x tempo por exemplo de 5 em 5 minutos, faz um HTTP Post request etc. Nao entendo porque estes saltos de consumo, alguem me consegue ajudar a analizar? Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 25, 2023 at 04:32 PM Report Share #632204 Posted November 25, 2023 at 04:32 PM É comum a utilização de memória oscilar, e tal é causado pelo algoritmo usado pelo garbage collector para libertar memória, que vai acumulando lixo (desde que tenha memória suficiente), e periodicamente faz limpezas de memória. É possível que tenhas algum leak, mas não é claro se a aplicação não liberta mais memória porque não pode (leak), ou porque não precisa. Através de uma ligação JMX deves conseguir forçar uma limpeza completa de memória, e confirmar se a utilização de memória está a crescer ao longo do tempo. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
hmartins Posted November 25, 2023 at 04:35 PM Author Report Share #632205 Posted November 25, 2023 at 04:35 PM Rui Obrigado pela resposta. Consegues me explicar como forço a limpeza que falas te? Link to comment Share on other sites More sharing options...
Rui Carlos Posted November 25, 2023 at 06:00 PM Report Share #632207 Posted November 25, 2023 at 06:00 PM Por norma uso o JConsole para me ligar à aplicação por JMX. O JConsole tem um separador para monitorizar a memória, que permite forçar o GC a correr naquele momento. Podes ver mais detalhes aqui (na figura 3-6 podes ver o botão "Perform GC", e antes tens detalhes sobre vários métodos para te ligares). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
hmartins Posted November 25, 2023 at 07:03 PM Author Report Share #632208 Posted November 25, 2023 at 07:03 PM (edited) Estou a usar o Azul Mission Control para analisar e encontrei la uma seccçao onde se pode executar comandos e executei um GC.run. Nota se bem ali no final quando foi executado e efectivamente ha uma decida do consumo. No entanto nao ha forma de perceber se existe ou nao leak certo? PS: So acho estranho a aplicaçao nas primeiras 2/3 horas estar com um consumo max de 16MB, depois ter subido para 48MB max durante quase 24H e depois ter subido novamente para um teto de 80MB. Edited November 25, 2023 at 07:17 PM by hmartins Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now