Guía de aprendizaje: analizar los datos de perfilado de un proceso Java
Objetivos
Esta guía enseña a analizar los datos recogidos al perfilar un proceso Java, mediante las
vistas de perfilado y anotación de la perspectiva Perfilado y anotaciones, llevando a cabo los
siguientes procedimientos:
- Identificar los objetos y los métodos que consumen más tiempo de la cuenta
- Identificar las clases con gran actividad de memoria
- Detectar la concurrencia de los programas
- Localizar las fugas de memoria
- Examinar cada ejecución de un método en función del tiempo
- Obtener una vista más amplia del comportamiento de ejecución en función del tiempo
- Identificar las hebras activas
- Identificar qué hebras están activas
- Identificar los métodos a los que se llama con frecuencia
- Detectar la recogida de basura
- Identificar las distintas fases de ejecución de un programa
- Estudiar las diferentes invocaciones de método
- Estudiar el llamador de un método
Tiempo necesario
1 hora
Antes de empezar
Antes de dar comienzo a esta guía de aprendizaje, tendrá que:
- Instalar la plataforma Eclipse, incluyendo las herramientas de Hyades.
- Tener los archivos de perfilado de ejemplo listos para
importación. Deben estar en:
directorio de instalación\directory\eclipse\plugins\org.eclipse.hyades.collection.framework\src\org\eclipse\hyades\test\collection\framework
Descripción
En esta guía de aprendizaje, utilizará las distintas vistas de perfilado y anotación para
analizar el ejemplo PerformanceExample.class. El ejemplo abre un marco en
el que figuran dos botones.
Llevará a cabo las tareas siguientes:
- Abrir la perspectiva Perfilado y anotación en el entorno de
trabajo
- Perfilar la clase PerformanceExample
- Analizar la información de perfilado
Para actualizar las vistas mientras se esté supervisando la aplicación, pulse el botón Renovar
vistas
.
Pulse Abrir una perspectiva
> Otras > Perfilado y anotaciones.
Siga estos pasos:
- Pulse Perfil
. El
asistente Lanzar proceso Java se abre por la página Clase.
- Seleccione: Seleccionar una clase en el sistema de archivos.
- Pulse Examinar y localice la clase de ejemplo, que debe estar en:
directorio de instalación\eclipse\plugins\org.eclipse.hyades.collection.framework\bin\org\eclipse\hyades\test\collection\framework
Pulse Siguiente. Se abre la página Destino.
- ProfileProject y DefaultMonitor son los recursos de perfilado por
omisión, que se pueden usar para almacenar los datos de esta sesión de
perfilado. Pulse Siguiente. Se abre la página Filtros de perfilado.
- Acepte los filtros por omisión. Pulse Siguiente. Se
abre la página Opciones de perfilado.
- El recuadro de selección de Mi aplicación utiliza demasiada
memoria ya está seleccionado, lo que significa que en los datos de
perfilado que se recojan de la aplicación se incluirá información relacionada con la memoria.
- Para recibir información de ejecución, seleccione Mi aplicación es muy
lenta. Con esta opción seleccionada puede utilizar las vistas estadísticas para analizar la
información relacionada con el tiempo. Debe recoger detalles gráficos de la ejecución para
poder utilizar las vistas Flujo de ejecución e Invocación de método. Puesto que el objetivo
de este ejemplo es guiarle a través de todas las vistas de perfilado, incluyendo las vistas Flujo
de ejecución e Invocación de método, pulse Mostrar detalles y seleccione Mostrar detalles
gráficos del flujo de ejecución. Pulse Finalizar.
- Se crean los recursos de perfilado necesarios, y el agente y el proceso
aparecen en la vista Supervisor de perfilado.
- Habilite la visión de carpetas, supervisores y sistemas principales, y
verá el supervisor que agrupa los datos, así como la máquina en la que está
ejecutando el entorno de trabajo.
Ver el comportamiento de la ejecución a lo largo del tiempo
- Abra la vista Flujo de ejecución: seleccione su supervisor, pulse el
botón derecho del ratón y seleccione Abrir con >
Flujo de ejecución.
- Esta vista representa la ejecución de todo el
programa. El tiempo viene representado en el eje vertical situado a la derecha.
- Pulse el nombre de un método (o pulse en el espacio en blanco más abajo
del método) para seleccionarlo. Todos los métodos llamados por él quedan
resaltados en amarillo. La longitud vertical del área resaltada ofrece una
indicación del tiempo base del método. El valor exacto del tiempo base se
visualiza en la línea de estado.

- Utilice la herramienta
Acercar
para habilitar el cursor y a continuación pose el cursor y
pulse para agrandar el área.

Analizar el proceso mediante la vista Flujo de ejecución
Abrir la vista Flujo de ejecución
- En la vista Supervisor de perfilado, seleccione el supervisor o el
agente.
- Pulse el botón derecho del ratón y seleccione Abrir con >
Flujo de ejecución. Se abre la vista Flujo de ejecución.
Nota: para actualizar las vistas mientras se esté
supervisando la aplicación, pulse el botón Renovar vistas
.
Identificar las hebras activas
En la vista Flujo de ejecución, cada hebra contiene periodos de actividad,
identificados mediante una abundancia de llamadas de método. En la
representación simbólica, el primer método llamado es una banda, y los métodos
llamados ulteriormente por él se visualizan como otras tantas bandas situadas
hacia la derecha. La secuencia de llamadas avanza de izquierda a derecha; las
partes activas de la hebra se identifican precisamente por este avance de
izquierda a derecha.
Cuando selecciona toda una sección que rodea la secuencia de llamadas de
método, el tiempo base invertido al ejecutar esa secuencia se visualiza
en la línea de estado. Para ver el tiempo base durante el que está activa la
hebra, calcule la diferencia entre estos dos tiempos:
- Ponga el puntero en la línea horizontal superior del área seleccionada
en amarillo para visualizar el correspondiente tiempo base en la línea de
estado.
- Asimismo, ponga el puntero en el borde inferior del área seleccionada en
amarillo (que cubre el periodo de ejecución en el que la secuencia de métodos está
en acción) y tome nota del tiempo base en ese punto.
Consejos
- Si el gráfico está demasiado lleno y resulta difícil de leer, accione el
zoom para acercar
el área que desea ver mejor.
- Cuando selecciona un método, todos los métodos llamados por él quedan
resaltados en amarillo.
- Puede arrastrar y soltar las vistas en el entorno de trabajo,
organizándolas simultáneamente, si lo necesita.
- Hacia dondequiera que señale el cursor, el correspondiente tiempo base
viene indicado en la barra de estado.
- Para restablecer la visualización de la vista, pulse el botón
de Inicio.
Identificar los métodos a los que se llama con frecuencia
Para identificar los métodos a los que se llama con frecuencia:
- Utilice la herramienta de zoom
para agrandar una secuencia de llamadas de método.
- Busque las bandas del mismo color en el área seleccionada. Las bandas
identifican los métodos de la misma instancia de clase a los que se ha llamado
múltiples veces.
- Compruebe la longitud de las bandas de distinto color (cada una de las
cuales representa un método). La longitud de la banda es directamente
proporcional al tiempo de ejecución del método en cuestión.

Detectar la recogida de basura
Por lo general, es imposible saber si se ha producido la recogida de basura
en un objeto tan solo con inspeccionar las bandas de una hebra de usuario en
esta vista.
Siga estos pasos:
- Fíjese en la columna situada más a la izquierda en esta vista. Esta
columna está reservada para la hebra de la recogida de basura, por lo que recibe
el nombre de columna de la hebra GC (siglas en inglés de recogida de basura).
- Vea si en la columna de la hebra GC hay un rectángulo delgado. El rectángulo
estará probablemente situado en la parte inferior de la mayoría de las llamadas
de método en el objeto. Este rectángulo aparece en la columna de la hebra GC
siempre que se haya producido la recogida de basura en un objeto.
Identificar las fases de ejecución de un programa
Identificar la fase de inicialización
- Utilice la herramienta de zoom para acercar
con el fin de agrandar la secuencia de llamadas de método situada en la parte superior
de la hebra principal.
- Observe los métodos que tienen la marca -init-.
- Pulse uno de esos métodos para seleccionarlo. La barra de estado se
actualiza para indicar que el método sirve de ayuda en el proceso de
inicialización (asignando valores a las variables que se emplean en la aplicación).
Analizar los métodos mediante la vista Invocación de método
- En la vista Supervisor de perfilado, seleccione un supervisor o un
agente. Pulse el botón derecho del ratón y seleccione Abrir con >
Flujo de ejecución.Aparece la vista Flujo de ejecución.
- Seleccione el método que desea estudiar, pulse el botón derecho del
ratón y seleccione Mostrar invocación de método.
- Utilice la herramienta de zoom para acercar
con el fin de agrandar una sección de la pantalla.Las bandas están coloreadas por
clases y conectadas mediante líneas horizontales que representan las llamadas
de método.
- Seleccione un método pulsando su nombre.
- Pulse el botón Renovar vistas
para asegurarse
de que está viendo la información actual.
- Observe la línea:

Esta línea visualiza el nombre del método, seguido de una fracción
n/m, donde n representa la invocación visualizada actualmente
y m indica el número total de invocaciones.
- Pulse Anterior
y Siguiente
para
examinar todas las invocaciones del método seleccionado (o cada mensaje enviado al
objeto seleccionado). La fracción de la barra de herramientas va
cambiando para indicar qué invocación se está viendo.
Localizar el llamador de un método
Para localizar qué elemento está llamando a un método, siga estos pasos, todavía en
la vista Invocación de método:
- Para ver el llamador del método, pulse el botón Mostrar llamador
. El
método se visualiza junto con el llamador, situado a su izquierda.
- Si desea ver más detalles acerca del llamador del método para cada nueva
invocación que vea, sitúe el cursor sobre la banda que representa el llamador
en la vista. La línea de estado facilita información sobre el llamador.
- Si desea ver a qué método llama el método seleccionado, pulse el botón Mostrar método
llamado
.
(C) Copyright IBM Corporation 2000, 2003. Reservados todos los derechos.