Pegar a quantidade de Memória utilizada pela aplicação
5 respostas
java
R
rodrigosnantes
Olá boa noite a todos, gostaria de saber como faço para extrair a quantidade de memória que uma certa aplicação está usando.
Ex: quando abrimos o gerenciado de Memória do proprio windows temos acesso a uma coluna “MEMÓRIA” e nela é contida quanto cada uma das aplicações que estão rodando no computador utilizam.
Eu gostaria de fazer essa mesma busca, porem de uma unica aplicação, só que em java.
Ex: Buscar a quantidade de memória que o netBeans utiliza, porem em java.
Pra isso você vai precisar escrever código nativo.
Em Java você só consegue obter a memória disponível dentro do escopo da máquina virtual java e não a memória consumida por um processo do sistema operacional.
R
rodrigosnantes
Oi Staroski pode me dar um exemplo?
S
staroski
Como falei, isso depende de código nativo, cada sistema operacional tem sua forma de prover estas informações.
Então, para acessar tal informação a partir do Java, você vai precisar de bibliotecas de terceiros, ou então escrever seu próprio código nativo e acessar via JNI ou via JNA.
No Windows, por exemplo, você pode usar a função GlobalMemoryStatusEx, disponível na Kernel32.dll.
Essa função retorna uma estrutura MEMORYSTATUSEX que possui campos pertinentes à memória disponível.
R
rodrigosnantes
bom, eu tive pesquisando bastante, porem como sou iniciante, nao encontrei formas de fazer isso.
Seria possivel fazer isso com um comando simples de DOS ou powershell?
Fiz utilizando esse comando, porem ele me mostra a memória que o sistema aloca para a aplicação e nao a memória que está sendo utilizada no momento…
PowerShellResponse resposta = PowerShell.executeSingleCommand(“Get-Process Outlook | Select-Object Name,@{Name=‘WorkingSet(MB)’;Expression={($_.ws / 1024kb)}} | format-table -autosize”); System.out.println(" Processos de lista: " + resposta.getCommandOutput());
S
staroski
Não, a menos que você encontre um programa em linha de comando que faça isso.