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:

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 las herramientas de Hyades.
  2. 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:

  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

Pulse Abrir una perspectiva Botón con un icono estilizado > Otras > Perfilado y anotaciones.

Perfilar la clase PerformanceExample

Siga estos pasos:

  1. Pulse Perfil  Un botón con un icono estilizado. El asistente Lanzar proceso Java se abre por la página Clase.
  2. Seleccione: Seleccionar una clase en el sistema de archivos
  3. 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.
  4. 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.
  5. Acepte los filtros por omisión. Pulse Siguiente. Se abre la página Opciones de perfilado.
  6. 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
  7. 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.
  8. Se crean los recursos de perfilado necesarios, y el agente y el proceso aparecen en la vista Supervisor de perfilado.  
  9. 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.

    Supervisor de perfilado que muestra una jerarquía de recursos y el menú desplegable para seleccionar recursos a visualizar

     

Analizar la información de perfilado

Ver el comportamiento de la ejecución a lo largo del tiempo

  1. 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
  2. Esta vista representa la ejecución de todo el programa. El tiempo viene representado en el eje vertical situado a la derecha. 
  3. 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.

    Vista Flujo de ejecución con dos métodos, el de la izquierda con sombreado amarillo
     
  4. 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.  

    ampliación de la ilustración del Flujo de ejecución
     

Analizar el proceso mediante la vista Flujo de ejecución

Abrir la vista Flujo de ejecución

  1. En la vista Supervisor de perfilado, seleccione el supervisor o el agente.
  2. 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 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.  

    Imagen de la vista Invocación de método

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. 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).
  2. 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  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:

  1. 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.  
  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. Si desea ver a qué método llama el método seleccionado, pulse el botón Mostrar método llamado