Consumo de CPU y memoria

¿Hay alguna forma de obtener con Java el consumo de CPU y de memoria de un equipo?

1 respuesta

Respuesta
1
No entiendo muy bien a qué te refieres. Si me preguntas una forma para medir el consumo de recursos de un programa Java, la mejor es utilizando un profiler para java, y cual mejor que el JProfiler ;)
http://www.ej-technologies.com/products/jprofiler/overview.html
Este programa es excelente, lo utilizo muchísimo en mi trabajo. Es muy sencillo de utilizar, y ofrece todas las posibilidades que te puedas imaginar y más aún. Puedes medir el consumo de tu programa completo, o el consumo de un hilo de tu programa (de un listado de todos los hilos que se ejecutan) o el consumo de una clase, o el de un método, o el número de veces (y el tiempo de ejecución cada vez) que llamas a un método, o que utilizas una variable... las dependencias de tu programa, cuellos de botella... es increíble.
La única pega es que es un programa de pago, pero te ofrecen una versión de evaluación de 30 días para que lo pruebes, y si te gusta lo compres... ya sabes como es esto.
Si lo que me preguntas es cómo hacer una especie de "gestor de recursos", que mida en cada momento el consumo global de CPU, el consumo de memoria, el estado de los discos duros... sólo podrás si encuentras unas librerías C/C++ que lo hagan, y las enlazas a tu programa java con JNI. Lamentablemente en este punto no te puedo echar más cable, porque desconozco qué librerías puedes utilizar. Si necesitas ayuda con JNI la mejor fuente de ayuda la encuentras en:
http://java.sun.com/docs/books/tutorial/native1.1/
Pero te advierto que si no lo has hecho nunca no es una cosa trivial, por lo que te recomiendo intentar buscar una solución diferente a Java, o afrontar el problema de otro modo. Es complicado hacer lo que buscas porque como sabes, los programas Java se ejecutan sobre una máquina virtual, y por lo tanto se pierde la referencia de la máquina "real" sobre la que se está ejecutando el programa. La única forma de conseguiro es accediendo directamente al sistema operativo con librerías escritas en C/C++.
Si necesitas más información, o te surge cualquier otra duda, ya sabes dónde localizarme :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas