Cómo empezar: análisis de fugas de memoria

Las fugas de memoria, que en Java se producen, generalmente, cuando los objetos retienen referencias de forma inadecuada, pueden reducir el rendimiento y, en ocasiones, hacer que el programa falle. La perspectiva Perfilado y registro incluye vistas para analizar el uso de memoria de la aplicación y detectar las fugas.

Para el análisis de fugas de memoria, están disponibles las vistas siguientes:

Después de identificar una fuga, puede utilizar ProbeKit para diseñar sondas personalizadas que le permitan investigar objetos específicos que pueden ser causa de la fuga.

Para identificar rápidamente los candidatos de la fuga, realice análisis de fugas de memoria perfilando con un conjunto de perfilado de Análisis de fugas de memoria. También puede examinar el uso de la memoria al perfilar con el conjunto de perfilado de Análisis de memoria; puede examinar los datos con las vistas Gráfico de referencia a objetos, Referencias a objetos y Detalles del objeto, pero no puede utilizar los datos para generar una lista de candidatos de fuga.

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

Realización de análisis de fugas de memoria

Los análisis de fugas de memoria utilizan algoritmos avanzados para identificar posibles fugas de memoria basadas en una comparación de dos vuelcos de almacenamiento dinámico. Puede definir una configuración de perfilado que le permita capturar vuelcos de almacenamiento dinámico de forma manual, o bien, que le permita capturar vuelcos de almacenamiento dinámico automáticamente a las horas que especifica en el conjunto de perfilado.

Requisitos previos:

Para analizar fugas:

  1. En la pestaña Perfilado del recuadro de diálogo Perfil, seleccione el conjunto de perfilado Análisis de fugas de memoria - Vuelcos de almacenamiento dinámico manuales o Análisis de fugas de memoria - Vuelcos de almacenamiento dinámico temporizados.
  2. Pulse Perfil para iniciar la aplicación. Se abre la vista Candidatos de fuga y muestra información de estado para la ejecución de perfilado.
  3. Si captura vuelcos de almacenamiento dinámico manuales, lleve a cabo lo siguiente:
    1. Prepare la aplicación: utilice la aplicación hasta que esté en la memoria todo lo que debe contener. Ejecute las transacciones que desea investigar varias veces.
    2. Capture el primer vuelco de almacenamiento dinámico al pulsar el botón Botón Capturar vuelco de almacenamiento dinámico en la vista Candidatos de fuga. El vuelco de almacenamiento dinámico se añade al Monitor de perfilado como un recurso de perfilado.
    3. Realice las transacciones que desea investigar varias veces más.
    4. Capture un segundo vuelco de almacenamiento dinámico. Ya puede interrumpir la aplicación.
  4. Si captura vuelcos de almacenamiento dinámico temporizados, deje que la aplicación siga ejecutándose hasta que la vista Candidatos de fuga indique que ambos vuelcos de almacenamiento dinámico se han capturado y que puede iniciar el análisis. Por omisión, el primer vuelco de almacenamiento dinámico se captura después de 10 minutos (600 segundos) y el segundo 10 minutos más tarde. Ya puede interrumpir la aplicación.
  5. En la vista Candidatos de fuga, pulse el botón Analizar para detectar fugas Botón Analizar para detectar fugas.
  6. En el recuadro de diálogo Seleccionar las opciones de análisis de fugas, pulse Aceptar. Cuando finaliza el análisis, la vista Candidatos de fuga lista los objetos del almacenamiento dinámico que retenían referencias a objetos al llevar a cabo el segundo vuelco de almacenamiento dinámico y, listando en primer lugar los objetos que con mayor probabilidad causaban la fuga de memoria.
  7. Efectúe una doble pulsación en el candidato de fuga más probable para visualizarlo en la vista Gráfico de referencia a objetos. El gráfico resalta la vía de acceso entre la raíz de la fuga (el objeto que retiene las referencias) y el posible objeto que se ha fugado; esto le permite navegar a través del gráfico. Puede visualizar información estadística sobre cualquier objeto o segmento de vía de acceso si detiene el cursor sobre el mismo. De este modo, puede investigar cuánto memoria está retenida y considerar si es posible eliminar alguna de las referencias.
  8. Efectúe una doble pulsación en un objeto de la vista Gráfico de referencia a objetos para visualizar información de objeto en la vista Detalles del objeto. Esta vista muestra toda la información sobre el objeto actual en formato tabular, incluidos datos adicionales sobre los referentes (objetos que hacen referencia al objeto actual) y los referenciados (objetos a los que hace referencia el objeto actual) del objeto.

Ahora, puede modificar el código para eliminar las referencias ya no son útiles, de modo que el recopilador de información no válida (basura) pueda recopilar los objetos innecesarios. Vuelva a perfilar la aplicación para verificar si ha arreglado la fuga y detectar otras fugas.

Para obtener más información, consulte la sección Análisis de fugas de memoria.

Investigación del uso de memoria con análisis de memoria

El conjunto de perfilado Análisis de memoria, con el tipo de perfilado Análisis/fugas de memoria, le permite recopilar referencias a objetos y ver vuelcos de almacenamiento dinámico. Tenga en cuenta que puede ver los datos en las vistas Gráfico de referencia a objetos, Referencias a objetos y Detalles del objeto, pero no los puede utilizar para generar una lista de candidatos de fuga.

Para investigar el uso de memoria:

  1. En la pestaña Perfilado del recuadro de diálogo Perfil, seleccione el conjunto de perfilado Análisis de memoria. Recuerde que este conjunto de perfilado no identifica candidatos de fuga automáticamente.
  2. Pulse Perfil para iniciar la aplicación.
  3. Ejecute las partes de la aplicación que desee analizar.
  4. En el Monitor de perfilado, pulse el botón derecho del ratón sobre el recurso de perfilado de agente y seleccione Recopilar referencias a objetos en el menú emergente. Ya puede interrumpir el programa. En el Monitor de perfilado aparece un recurso de perfilado con los datos recopilados de la ejecución.
  5. Para visualizar referencias a objetos, pulse el botón derecho del ratón sobre el recurso de perfilado y, en el menú emergente, seleccione Abrir con..., seguido del nombre de la vista que desea visualizar.
Terms of use | Feedback
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.