El generador de perfiles proporciona información sobre su aplicación, como su CPU, memoria y uso de pilas. También proporciona detalles sobre los subprocesos de la aplicación. En este capítulo se analiza el uso de VisualVMtool para la creación de perfiles de aplicaciones Java. Puede perfilar entidades como CPU y heap.
Se recomienda que los lectores de este tutorial estén familiarizados con los conceptos de perfil de la aplicación.
Introducción
VisualVM es una herramienta visual que integra herramientas JDK y le ofrece potentes capacidades de perfilado. Le permite generar y analizar datos de pilas, rastrear fugas de memoria,monitorear el colector de basura y realizar perfiles de memoria y CPU.
Beneficios
-
Interfaz visual para aplicaciones Java locales y remotas que se ejecutan en JVM.
-
Supervisión del uso de memoria de la aplicación y del comportamiento en tiempo de ejecución de la aplicación.
-
Supervisión de los hilos de aplicación
-
Analizar las asignaciones de memoria a diferentes aplicaciones.
-
Vertederos de hilo – muy práctico en caso de bloqueos y condiciones de carrera.
-
Volcados de pilas: muy útil para analizar la asignación de memoria de pilas.
Configuración
En esta sección, aprenderemos los pasos realizados para configurar VisualVM. Los pasos son los siguientes−
-
Descárgalo desde aquí.
-
Extrae el archivo zip.
-
Vaya a etc / visualvm.archivo conf y agregue la siguiente línea en este archivo−
visualvm_jdkhome=<path of JDK>
-
Si su JDK está instalado en el C:\Program Files\Java \ jdk-9.0.1 directorio entonces debería tener este aspecto−
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
Supervisión de la aplicación
Veamos ahora cómo supervisar la aplicación. Considere los siguientes pasos para entender lo mismo−
- Haga doble clic en visualvm.archivo exe.
- Seleccione la aplicación en el panel izquierdo.
- Seleccione la pestaña monitor.
Se le dirigirá a una ventana donde obtendrá los detalles sobre CPU, Montón, Clases y subprocesos. Para ser específico con el uso, pase el ratón sobre cualquier gráfico. Podemos ver el uso de Heap en la captura de pantalla anterior.
Información sobre subprocesos
La aplicación Java puede contener varios subprocesos de ejecución. Para obtener más información sobre los subprocesos,seleccione la pestaña Subprocesos de una aplicación en particular. Dará varias estadísticas sobre los hilos, como el número de hilos en vivo y los hilos de demonio. Los diferentes estados de hilo son Funcionamiento, Sueño, Espera, Estacionamiento y Monitor.
Aplicación de muestreo
VisualVM admite muestreo de CPU, memoria y detección de fugas de memoria. Para la aplicación de muestra, seleccione la aplicación y elija la pestaña de muestra −
Muestreo de CPU
Para muestreo de CPU, haga clic en el botón CPU como se muestra en la siguiente captura de pantalla −
Perfilado de memoria
Para perfilado de memoria, haga clic en el botón de memoria como se muestra en la siguiente captura de pantalla −
Fugas de memoria
Se produce una fuga de memoria cuando una aplicación, mientras se ejecuta, llena lentamente el montón con objetos que el programa no elimina automáticamente.
Si un objeto que no es utilizado por el programa no se elimina, entonces permanece en la memoria y el GC no puede recuperar su espacio. Si el número de bytes y el número de instancias en su aplicación aumentaran constante y significativamente en su programa hasta el punto de agotar todo el espacio, esto puede ser una indicación de una fuga de memoria.
Aplicación de perfilado
En esta sección, aprenderemos a perfilar una aplicación. Para perfilar una aplicación, seleccione la aplicación en el panel izquierdo y haga clic en la pestaña perfil −
Perfiles de CPU
Para realizar perfiles de CPU, haga clic en el botón CPU como se muestra en la captura de pantalla siguiente −
Perfiles de memoria
Para realizar perfiles de CPU, haga clic en el botón CPU como se muestra en la captura de pantalla siguiente −