Guía de aprendizaje: analizar datos de perfilado
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 Test and Performance Tools Platform
(TPTP).
- Tener los archivos de perfilado de ejemplo (hcframe.jar) listos para
importación. El archivo debe estar en el siguiente directorio:
TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0
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
.
En el menú Ventana, pulse Abrir perspectiva > Otras > Perfilado y
anotación.
Para perfilar la clase PerformanceExample, siga estos pasos:
- Pulse en el desplegable Perfil
y seleccione Perfil. Se abre el diálogo Lanzar perfil.
- Efectúe una doble pulsación sobre Aplicación Java externa para crear una
configuración nueva.
- Pase a la pestaña Principal.
- Teclee org.eclipse.hyades.test.collection.framework.PerformanceExample en el campo
Nombre de clase.
- Pulse Añadir Jar para añadir el jar que contiene esta clase.
- Seleccione
TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
- Pulse Abrir. Se añade el jar.
- Pulse la pestaña Supervisor. Puede especificar los criterios de perfilado en esta pestaña.
- En la pestaña Supervisor, expanda el nodo llamado Perfilado Java, seleccione Análisis de memoria
básico y marque el recuadro de selección situado a su lado. De esta forma se añadirá
información relacionada a la lista de tipos de información que debe recogerse de
la aplicación.
- Seleccione Análisis de hora de ejecución y marque el recuadro de selección situado a su lado.
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, mientras
selecciona Análisis de tiempo de ejecución, pulse Editar opciones, seleccione Mostrar detalles
gráficos de flujo de ejecución en el diálogo Editar opciones de perfilado.
Marque también el recuadro Recoger clases de límite excluidas del conjunto de filtros y establezca
Profundidad de clase de límite en 1. Pulse Finalizar.
- El Conjunto de filtros de perfilado proporciona la facultad para especificar el subconjunto de información que
desea analizar. Esto es
útil si no desea tener en cuenta las clases o los paquetes que no estén dentro de los límites que
desee analizar.
Seleccione Perfilado Java y pulse Editar opciones: se abre el diálogo Conjuntos de filtro. En Contenido del conjunto de filtros seleccionado, pulse Añadir para añadir
las clases o paquetes para los que desea recoger datos.
Se abre el diálogo Añadir filtro.
- Para perfilar esta clase, escriba
org.eclipse.hyades.test.collection.framework.* como Clase.
- Especifique el Nombre de método como * para incluir solamente
métodos relacionados con este ejemplo.
- Pulse Aceptar. El criterio de filtro se añade a lista de contenido.
- Para excluir otras clases existentes de esta lista de contenido de filtro,
pulse Incluir en la columna Regla para la clase y cámbiela por Excluir.
- Pulse Siguiente para ir a la página Límites. Esta página controla la cantidad de datos que se
recogen ya sea basándose en el tiempo transcurrido o en el número de invocaciones de método. Acepte los valores por omisión.
Pulse Finalizar para cerrar y aplicar los cambios realizados.
- Pulse la pestaña 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 Perfilar.
- Se crean los recursos de perfilado necesarios, y el agente y el proceso
aparecen en la vista Supervisor de perfilado.
- Habilite la visualización de Supervisores seleccionando Diseño
distribuido como se muestra en la siguiente captura de pantalla. Esto le permite
ver el supervisor que agrupa sus datos, así como la máquina en la que se ejecuta el
entorno de trabajo.

Ver el comportamiento de la ejecución a lo largo del tiempo
Puede examinar la ejecución de la aplicación utilizando la vista y tabla Flujo de
ejecución.
Esta vista representa la ejecución de todo el programa gráficamente y en un formato
tabular. En la vista Flujo de ejecución, el tiempo se muestra en el eje vertical. La
tabla de Flujo de ejecución se abre debajo de la vista Flujo de ejecución y en ella
figuran cada una de las hebras y los métodos a los que cada hebra ha llamado.
- En la vista Supervisor de perfilado, seleccione el supervisor, con el botón
derecho del ratón púlselo y seleccione Abrir con > Flujo de ejecución para
abrir la vista Flujo de ejecución. Se abre la vista Flujo de ejecución.
- Para examinar un método particular, púlselo 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.

Al pasar el cursor
por encima de un objeto de la vista se mostrará información detallada en la barra de estado situada en la parte
inferior de la ventana.
- Utilice la herramienta
Acercar
para habilitar el cursor y a continuación pose el cursor y
pulse para agrandar el área.
Nota: para actualizar las vistas mientras la aplicación se está supervisando,
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:
- La hebra de la recogida de basura está oculta por omisión. Puede habilitarla
seleccionando Hebras > GC en el menú Contexto de la vista.
- 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 en el 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.
- Para ver el método al que llama un método seleccionado, pulse el botón Mostrar
método llamado
.
(C) Copyright IBM Corporation 2000, 2006.