Cómo empezar: detección de cuellos de botella de hebras

Los cuellos de botella de hebras como los puntos muertos y las contiendas pueden ralentizar su aplicación o llegar a detenerla. La perspectiva Perfilado y registro incluye vistas y herramientas que le ayudan a detectar y resolver estos problemas de hebras.

Para detectar cuellos de botella de hebras, están disponibles las vistas siguientes:

También puede investigar cuellos de botella de hebras utilizando sondas personalizadas diseñadas en ProbeKit.

Tema principal: Cómo empezar: determinación de problemas relacionados con el tiempo de ejecución

Recopilación de datos para la detección de cuellos de botella

Requisitos previos:

Para recopilar datos:
  1. En la pestaña Perfilado del recuadro de diálogo Perfil, seleccione el conjunto de perfilado Análisis de hebras.
  2. Pulse Perfil para iniciar la aplicación.
  3. Ejecute las partes de la aplicación en las que se pueden estar produciendo cuellos de botella. Los datos de hebras se recopilan y registran en un recurso de perfilado de Análisis de hebras, que se visualiza en el Navegador de perfilado. Ya puede interrumpir la aplicación.

Utilización de las vistas Hebras y Diagrama de secuencias UML2 para la detección de cuellos de botella de hebras

La vista Hebras muestra un historial de la ejecución de todas las hebras de la aplicación e indica, explícitamente, las situaciones de punto muerto o contienda. La vista Interacciones de objetos UML2 muestra la secuencia de llamadas durante la ejecución de perfilado.

Para detectar cuellos de botella de hebras:
  1. Visualice la vista Hebras: pulse el botón derecho del ratón sobre el recurso de perfilado para los datos que ha recopilado y en el menú emergente seleccione Abrir con > Vista Hebras.
  2. En la vista Hebras, busque las flechas verticales Flechas que indican peticiones de bloqueo que hay entre las hebras. Una flecha señala de una hebra que solicita un bloqueo a la hebra que retiene el bloqueo. Una única flecha indica una contienda de hebras: una hebra espera que otra hebra libere un bloqueo. Varias hebras indican un punto muerto si muestran un patrón de petición de bloqueo circular, en el que las hebras se impiden la ejecución entre sí, puesto que mutuamente están a la espera de la liberación de un bloqueo.
  3. Identifique los métodos a los que se ha llamado en el momento de producirse el cuello de botella. Para identificar los métodos, efectúe los pasos siguientes:
    1. Busque el nombre del bloqueo para el que la hebra está a la espera. En la vista Hebras, detenga el cursor sobre la hebra en la ubicación en la que espera el bloqueo. En la información de la herramienta, se muestran el nombre del bloqueo y el nombre de la hebra que provoca el bloqueo que retiene el bloqueo.
    2. Pulse el botón derecho del ratón sobre el recurso de perfilado Análisis de hebras y, a continuación, en el menú emergente seleccione Abrir con > Interacciones de objetos UML2.
    3. En la lista de hebras de la vista Hebras, seleccione la hebra que retiene el bloqueo que desea investigar. La vista Interacciones de objetos UML2 se muestran las interacciones de objetos de la hebra seleccionada, incluido el bloqueo y las peticiones del bloqueo.
    4. Sitúe el indicador Hora actual sobre la flecha para la petición que desea investigar. De este modo, se sincronizan tanto la vista Interacciones de objetos UML2 como el recurso de perfilado Pila de llamada en el Monitor de perfilado. El indicador Hora actual se sitúa, por omisión, en el borde izquierdo del gráfico de la vista Hebras. Para moverlo, arrástrelo con el ratón.
  4. Visualice el código fuente que es responsable de retener el bloqueo, si está disponible. Para hacerlo, pulse el botón derecho del ratón sobre la llamada más reciente a la hebra que retiene el bloqueo y, a continuación, seleccione Abrir origen en el menú emergente. El código fuente sólo está disponible si se perfila un proyecto Java que está abierto actualmente en la perspectiva Java. Ahora ya puede realizar cambios en el código para resolver el cuello de botella.
  5. Vuelva a perfilar la aplicación para verificar si ha resuelto el cuello de botella.

Para obtener más información, consulte la sección Detección de cuellos de botella de hebras.

Utilización de las vistas Flujo de ejecución y Tabla de flujos de ejecución

Estas vistas muestran, en distintos formatos, los datos sin formato en los que se basa la vista Hebras.

Para utilizar estas vistas:
  1. Para visualizar las vistas Flujo de ejecución o Tabla de flujos de ejecución, seleccione Ventana > Mostrar vista > Otras . . .; expanda la entrada Perfilado y registro en el recuadro de diálogo Mostrar vista y seleccione la vista que desee mostrar.
  2. En las vistas Flujo de ejecución y Tabla de flujos de ejecución puede restar el tiempo atribuido al perfilado seleccionando Tiempo compensado en el menú emergente.

Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.