Boa Noite Prezados (as) Colaboradores (as) do Fórum…
A duvida é a seguinte: como monitorar o consumo de CPU ( e de memória também, se possível ) de uma Thread/PID dentro da JVM? Saber quanto recurso ( ou, no caso, tempo de CPU ) uma Thread obteve da JVM… Ou seja, se é possível implementar um código Java que faça isso…
Sei da existência de ferramentas como a JConsole - cuja qual eu já utilizo. Porém, eu gostaria de obter os dados capturados pela JConsole via API/código para poder utilizar estas informações internamente ao sistema que estou desenvolvendo…
Algum exemplo? Alguma sugestão?
No momento, estou me aprofundando ( ou afundando ) no assunto: http://docs.oracle.com/javase/7/docs/technotes/guides/management/
Espero ter sido razoavelmente claro nas minhas duvidas…
Qualquer ajuda é bem vinda, obrigado.
Deve ser possível através do pacote java.util.instrument
Eu geralmente uso a VisualVM, que vem junto do Java, ou o profiler do Netbeans mesmo.
Boa Tarde ViniGogoy…
Eu já utilizei o VisualVM, Jtop, entre outros… Quanto ao profiler do NetBeans, este eu ainda não utilizei… Usei alguns recursos para o Eclipse ( questão de gosto pessoal
, Eu prefiro o Eclipse… )… Mas vou verificar o que o NetBeans me oferece…
Quando ao pacote que você comentou, eu já li algo sobre ele, mas ainda não sei o bastante para usar suas funcionalidades…
Detalhe que eu queria fazer isso via código para poder integrar no meu sistema de monitoração…
VisualVM/JConsole/etc. são “visuais/gráficos”, ou seja, eu precisaria somente de algumas informações que eles mostram visualmente na forma de variáveis para o meu sistema de monitoração…
Grato pela ajuda…
Se alguém tiver mais alguma dica/exemplo/modelo/tutorial/etc/e/tal, é sempre bem vinda…
Abraços…
Boa Semana a Todos…
Eu também sou fã do Eclipse. Mas me dava ao trabalho de montar o projeto no Netbeans unica e exclusivamente para usar o profiler dele.
Isso antes do Visual VM. O VisualVM é uma versão simplificada desse profiler.
O JConsole reune todas aquelas informações ao utilizar a interface JMX dos processos (de sistema operacional) Java.
Você também pode utilizar o JMX dentro da sua aplicação para ficar monitorando qualquer coisa que possua interface JMX.
Aliás, JMX é uma das coisas mais úteis e menos utilizadas que eu já vi na minha vida. É incrível o que é possível se fazer com JMX e que as pessoas tanto batem a cabeça para fazerem nas suas aplicações Java…