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:

Tiempo necesario

1 hora

Antes de empezar

Antes de dar comienzo a esta guía de aprendizaje, tendrá que:

  1. Instalar la plataforma Eclipse, incluyendo Test and Performance Tools Platform (TPTP).
  2. 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:

  1. Abrir la perspectiva Perfilado y anotación en el entorno de trabajo
  2. Perfilar la clase PerformanceExample
  3. Analizar la información de perfilado

Para actualizar las vistas mientras se esté supervisando la aplicación, pulse el botón Renovar vistas Un botón con un icono estilizado.

Abrir la perspectiva Perfilado y anotación en el entorno de trabajo

En el menú Ventana, pulse Abrir perspectiva > Otras > Perfilado y anotación.

Perfilar la clase PerformanceExample

Para perfilar la clase PerformanceExample, siga estos pasos:

  1. Pulse en el desplegable Perfil botón con un icono estilizado y seleccione Perfil. Se abre el diálogo Lanzar perfil.
  2. Efectúe una doble pulsación sobre Aplicación Java externa para crear una configuración nueva.
  3. Pase a la pestaña Principal.
  4. Teclee org.eclipse.hyades.test.collection.framework.PerformanceExample en el campo Nombre de clase.
  5. Pulse Añadir Jar para añadir el jar que contiene esta clase.
  6. Seleccione TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
  7. Pulse Abrir. Se añade el jar.
  8. Pulse la pestaña Supervisor. Puede especificar los criterios de perfilado en esta pestaña.
  9. 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.
  10. 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.
  11. 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.
  12. Para perfilar esta clase, escriba org.eclipse.hyades.test.collection.framework.* como Clase.
  13. Especifique el Nombre de método como * para incluir solamente métodos relacionados con este ejemplo.
  14. Pulse Aceptar. El criterio de filtro se añade a lista de contenido.
  15. 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.
  16. 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.
  17. 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.
  18. Pulse Perfilar.
  19. Se crean los recursos de perfilado necesarios, y el agente y el proceso aparecen en la vista Supervisor de perfilado. 
  20. 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.

    Supervisor de perfilado mostrando la jerarquía de recursos y el menú desplegable para marcar los recursos y ocultarlos

Analizar la información de perfilado

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.

  1. 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.
  2. 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.

    Vista Flujo de ejecución con dos métodos

    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.

  3. Utilice la herramienta Acercar Un botón con un icono estilizado 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 Un botón con un icono estilizado .

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:

  1. 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.
  2. 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

Identificar los métodos a los que se llama con frecuencia

Para identificar los métodos a los que se llama con frecuencia:

  1. Utilice la herramienta de zoom Botón con un icono estilizado para agrandar una secuencia de llamadas de método.
  2. 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.
  3. 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:

  1. La hebra de la recogida de basura está oculta por omisión. Puede habilitarla seleccionando Hebras > GC en el menú Contexto de la vista.
  2. 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).
  3. 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

  1. Utilice la herramienta de zoom para acercar Botón con un icono estilizado con el fin de agrandar la secuencia de llamadas de método situada en la parte superior de la hebra principal.
  2. Observe los métodos que tienen la marca -init-.
  3. 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

  1. 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.
  2. Seleccione el método que desea estudiar, pulse el botón derecho del ratón y seleccione Mostrar invocación de método.
  3. Utilice la herramienta de zoom para acercar Botón con un icono estilizado 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. 
  4. Seleccione un método pulsando su nombre. 
  5. Pulse el botón Renovar vistas Un botón con un icono estilizado para asegurarse de que está viendo la información actual.
  6. Observe la línea:
    línea de estado que visualiza el nombre del método y los números 1/1

    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.
  7. Pulse Anterior botón con un icono estilizado y Siguiente botón con un icono estilizado 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:

  1. Para ver el llamador del método, pulse el botón Mostrar llamador botón con un icono estilizado. El método se visualiza junto con el llamador, situado a su izquierda.
  2. 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.
  3. Para ver el método al que llama un método seleccionado, pulse el botón Mostrar método llamado botón con un icono estilizado