Aplicação Java consumo de memoria PC

Caros, possuo uma aplicação java desktop do qual necessito identificar quanto de memoria RAM e CPU da maquina ela esta consumindo, pois tenho situações onde são abertas diversas instancias desta aplicação, poderiam me citar melhores maneiras de obter estes resultados.

Obrigado.

Uma ferramenta presente no próprio jdk: jvisualvm. Encontra-se na pasta bin da instalação do jdk.

A visualVM neste caso monitora a memoria do Java, o Heap, o permGem, gostaria de algo mais especifico da memoria RAM da maquina…

tenta usar o SIGAR

http://support.hyperic.com/display/SIGAR/Home <- API

Kara show essa API, não conhecia ainda, creio que seja util nesta minha necessidade.

Obrigado pela dica.

Utilizando o Sigar estou obtendo a quantidade de memoria utilizando pelo meu processo Java utilizando o trecho de codigo abaixo:

ProcessFinder find = new ProcessFinder(sigar);
long pid = find.findSingleProcess("Exe.Name.ct=javaw");
ProcMem memory = new ProcMem();
						
memory.gather(sigar, pid);
System.out.println(String.valueOf(memory.getSize() / 1024 / 1024) + "MB");

O metodo memory.getSize() me retorna o valor de: 1452711936. Que fazendo a divisão 1452711936 / 1024 / 1024, chego no valor de 1385.
Neste caso seria 1385 MB, estou achando estranho esse valor, será que possui algum erro ?

se for windows, abre o taskmanager veja se a memória esta correta.

eu acho que o certo é dividir novamente por 1024 tendo como resultado: 1.35MB

compare o resultado com o taskmanager.

li algo sobre arquitetura x64 e 32 bits retornando valores diferentes, talves seja isso também.