O Linux não está computando a memória usada em java

1

Nós temos uma aplicação java onde para a última parte dos códigos nós escrevemos estas linhas

Runtime runtime = Runtime.getRuntime();
long memory = runtime.totalMemory() - runtime.freeMemory();
System.out.println("\n\nUsed memory is bytes: " + memory);

O que notamos é que, com o passar do tempo, a parte superior mostra um aumento na coluna de memória (%) para o aplicativo, mas os valores de memória java (de variáveis de tempo de execução) mostram flutuações para cima e para baixo? Então, o que devemos seguir para decidir sobre o uso de memória exata? Minha intenção é identificar se há algum vazamento de memória no meu aplicativo?

    
por user132638 18.08.2012 / 13:04

1 resposta

0

Quando a JVM é iniciada, é necessária alguma memória do sistema operacional. Essa é a quantidade de memória que você vê em ferramentas como ps e top.

Em seguida, seus aplicativos começam a usar essa memória: essa é a memória que você vê com seu código e ferramentas como jstat.

Então, se você quiser depurar o vazamento de memória dentro do seu aplicativo, não quer usar top ou ps.

    
por 18.08.2012 / 14:27

Tags