Identificar las fugas de memoria
Prerrequisitos:
Las fugas de memoria son errores que se producen en la lógica de asignación
dinámica de almacenamiento de un programa y que impiden al programa reclamar la
memoria descartada. Es decir, no se reclaman los objetos que han dejado de
necesitarse. Se supone que hay una fuga de memoria cuando se produce un número
inesperadamente elevado de tales incidencias. Una fuga de memoria, si es grave,
puede provocar el colapso de su aplicación debido a que se ha agotado la memoria.
Las fugas de memoria se deben a objetos que siguen reteniendo referencias a
otros objetos, impidiendo así que la recogida de basura pueda reclamar los
objetos retenidos.La tabla de referencias de objetos puede servir de ayuda
para identificar este tipo de referencias.
Buscar una fuga de memoria en una aplicación
Para identificar una fuga de memoria en la aplicación, siga estos pasos:
- En la perspectiva Perfilado y anotaciones, seleccione el supervisor o el agente en la vista Supervisor de perfilado.
- Pulse con el botón derecho el Supervisor o el Agente y seleccione Recopilar referencias de objeto. Las referencias
de objeto se recogerán.
- Pulse otra vez con el botón derecho y seleccione Abrir con > Referencia de objeto. Se abre la tabla de referencias de objeto.
- Seleccione el icono del menú local
y seleccione Mostrar referencia a.
- Examine la lista de objetos y el número de referencias que se hacen a
ellos. Los que tienen referencias representan un problema potencial de fuga de memoria.
Localizar una fuga de memoria en una operación orientada a transacciones
Este procedimiento pretende ayudarle a identificar una fase del programa en
la que se crean objetos nuevos, pero no se liberan, impidiendo así que la
recogida de basura pueda eliminarlos.
Por ejemplo, su programa crea una
ventana de diálogo, pero los objetos relacionados con el diálogo siguen estando
retenidos después de que la ventana se haya cerrado. Para identificar una fuga de memoria en
una operación orientada a transacción, siga estos pasos:
- En la perspectiva Perfilado y anotaciones, seleccione el supervisor o el agente en la vista Supervisor de perfilado.
- Recoja referencias de objeto antes de la operación en cuestión.
Pulse con el botón derecho y
seleccione Recoger referencias de objeto. Las referencias
de objeto se recogerán.
- Pulse con el botón derecho sobre el supervisor y seleccione Abrir con >
Referencia de objeto. Examine la tabla Referencias de objeto y tenga en cuenta las referencias de objeto que se han
creado.
- Ejecute la operación que desea examinar.
- Recoja referencias de objeto después de completar la operación.
Pulse con el botón derecho y
seleccione Recoger referencias de objeto.
- Pulse con el botón derecho sobre el supervisor y seleccione Abrir con >
Referencia de objeto.
Examine la tabla Referencias de objeto y tenga en cuenta las referencias de objeto que se han
creado.
- Para examinar una referencia de objeto determinada, siga estos pasos:
- En el menú desplegable de la tabla Referencias de objeto, seleccione Mostrar referencia
por.
- Seleccione la clase de su objeto y expanda el elemento.
- Identifique las referencias que impiden reclamar los nuevos objetos.
Conceptos relacionados
Visión general de la herramienta de perfilado
Recursos de perfilado
Tabla Referencias de objeto
Tareas relacionadas
Perfilar una aplicación
Lanzar o conectar un proceso Java
(C) Copyright IBM Corporation 2000, 2006. Reservados todos los derechos.