Ejercicio 1.2: Recopilación de datos de hebras
Antes de empezar, complete el Ejercicio 1.1: Importación de los recursos necesarios.
Caso de ejemplo: El programa que tiene la intención de investigar se ejecuta brevemente y, a continuación, se detiene inesperadamente. Esto ocurre cada vez que ejecuta el programa. Este comportamiento es típico de los puntos muertos de hebras, de ahí que se le pida que investigue cómo interactúan las hebras de este programa.
Para localizar los posibles puntos muertos de hebras, en primer lugar deberá recopilar los datos de las hebras. A continuación, analice dichos datos mediante la vista Hebras de la perspectiva Perfilado y registro.
La recopilación de los datos le permitirá identificar el punto muerto o descartar las hebras como causa de la anomalía de la aplicación.
Preparación de la recopilación de los datos de hebras
Para recopilar datos de hebras, debe estar en la perspectiva Perfilado y registro. Para conmutar a dicha perspectiva:
- En la barra de menús de Software Development Platform, seleccione Ventana > Abrir perspectiva > Otras...; se abre el recuadro de diálogo Seleccionar perspectiva.
- En la parte inferior izquierda del recuadro de diálogo, pulse Mostrar todo. En el recuadro de selección aparece una marca.
- En la lista de perspectivas, seleccione Perfilado y registro y pulse Aceptar.
- Si se abre el recuadro de diálogo Confirmar habilitación, pulse Habilitar posibilidades siempre y no volver a preguntarme y, a continuación, pulse Aceptar.
- La aplicación Software Development Platform conmuta a la perspectiva Perfilado y registro.
Recopilación de datos de hebras para la aplicación philosopher
Para recopilar datos:
- En la barra de menús de Software Development Platform, seleccione Ventana > Mostrar vista > Consola para abrir la vista Consola. La vista Consola le permite seguir la aplicación a medida que se procesa ésta.
- Cree una configuración de perfilado:
- En la barra de menús, seleccione Ejecutar > Perfil...; se abre el recuadro de diálogo Perfil.
- En la lista Configuraciones, efectúe una doble pulsación en la entrada Aplicación Java. Aparece una entrada New_configuration.
- En el campo Nombre, escriba PhilosopherThreads.
- En la pestaña Principal, si aún no aparece philosopher en el campo Proyecto, efectúe los pasos siguientes:
- Pulse Examinar, que aparece junto al campo Proyecto. Se abre el recuadro de diálogo Selección de proyecto.
- Seleccione philosopher y, a continuación, pulse Aceptar.
- Pulse Buscar, que aparece junto al campo Clase principal.
- En el recuadro de diálogo Elegir tipo principal, seleccione MaitreDHote y, a continuación, pulse Aceptar.
- Si utiliza la Máquina Virtual Java (JVM) de IBM, efectúe los pasos siguientes:
- En el recuadro de diálogo Perfil, pulse la pestaña Argumentos.
- Debajo de Argumentos de VM, escriba -Xj9 para especificar la versión correcta de JVM.
- En el recuadro de diálogo Perfil, pulse la pestaña Perfilado.
- En la subpestaña Visión general, marque el recuadro de selección del conjunto de perfilado Análisis de fugas de memoria. (Un conjunto de perfilado define el tipo de datos de perfilado que deben recopilarse para la ejecución.)
- Pulse Perfil. Se ejecuta la aplicación y el aspecto de la pantalla pasa a ser el siguiente:
- En el Monitor de perfilado aparece un recurso Perfilado.
- En la vista Consola aparece la salida de la ejecución.
Nota: Si aparece un mensaje de seguridad en el que se indique que el Controlador de agente no está disponible, consulte el apartado Si no ha podido recopilar datos.
Cuando la aplicación alcanza un punto determinado, se detiene su proceso. La salida tiene un aspecto parecido al siguiente:
. . .
philo#3: waiting for right fork#3
philo#2: waiting for right fork#2
philo#1: waiting for right fork#1
philo#0: waiting for right fork#0
HeadWaiter: all philosophers are locked for 6 times.
exiting application.
Aquí es donde el programa se detiene. No obstante, para esta ejecución, ha recopilado datos de las hebras, y ahora puede analizar por qué se ha detenido.
Si no ha podido recopilar datos
Para poder recopilar todos los tipos de datos de perfilados, el Controlador de agente debe estar ejecutándose. Si aparece un mensaje en el que se indique que el Controlador de agente no está disponible, compruebe que esté instalado, inícielo manualmente, e inténtelo de nuevo. Para obtener instrucciones, consulte la guía de instalación. Puede acceder a la guía de instalación mediante el Launchpad, o puede encontrarla en el CD del producto, el archivo disk1/install.html.
Una vez recopilados los datos, ya está preparado para comenzar el Ejercicio 1.3: Identificación de un cuello de botella de hebras.