Individuazione perdite di memoria
Prerequisiti:
Una perdita di memoria è un errore nella logica di assegnazione memoria dinamica di un programma
che fa sì che il programma non riesca a richiamare la memoria rilasciata. In altre parole, la memoria assegnata ad oggetti
non più necessari, non viene ripristinata. Un numero elevato di questo tipo di istanza può
provocare una perdita di memoria. Una perdita di memoria, se grave, può portare a una interruzione dell'applicazione
a causa di memoria non sufficiente.
Le perdite di memoria vengono causate da oggetti che continuano a conservare riferimenti ad altri oggetti,
impedendo alla raccolta dati obsoleti di raccoglierli. Per identificare
tali riferimenti è possibile utilizzare la tabella Riferimenti all'oggetto.
Individuazione perdite di memoria in un'applicazione
Per identificare una perdita di memoria in un'applicazione, procedere come segue:
- Nella prospettiva Creazione profili e log, selezionare il controllo o l'agente nella vista Controllo di creazione profili.
- Fare clic con il tasto destro del mouse sul controllo o l'agente e selezionare Raccogli i riferimenti all'oggetto. I riferimenti all'oggetto verranno raccolti.
- Fare nuovamente clic con il tasto destro del mouse e selezionare Apri con > Riferimenti
all'oggetto.
Viene aperta la tabella Riferimenti all'oggetto.
- Selezionare l'icona del menu locale
e selezionare Mostra riferimento to.
- Osservare l'elenco di oggetti e il numero di riferimenti ad essi. Gli
oggetti che dispongono di riferimenti rappresentano un problema potenziale di perdita di memoria.
Individuazione perdite di memoria in una operazione orientata ad una transazione
Questa procedura consente di identificare quelle fasi nel programma durante le quali vengono creati
nuovi oggetti, ma non vengono rilasciati, impedendo così che vengano rimossi durante la raccolta
dati obsoleti.
Ad esempio, il programma crea una finestra, ma gli oggetti relativi alla finestra
continuano ad essere mantenuti anche dopo la chiusura della finestra.
Per identificare una perdita di memoria in un'operazione orientata a una transazione, procedere come segue:
- Nella prospettiva Creazione profili e log, selezionare il controllo o l'agente nella vista Controllo di creazione profili.
- Raccogliere i riferimenti all'oggetto prima di eseguire l'operazione in questione.
Fare clic con il tasto destro del mouse e selezionare Raccogli i riferimenti all'oggetto. I riferimenti all'oggetto verranno raccolti.
- Fare clic con il tasto destro del mouse sul controllo e selezionare Apri con > Riferimento all'oggetto.
Esaminare la tabella Riferimenti all'oggetto e notare i riferimenti all'oggetto creati.
- Eseguire l'operazione da esaminare.
- Raccogliere i riferimenti all'oggetto dopo aver completato l'operazione.
Fare clic con il tasto destro del mouse e selezionare Raccogli i riferimenti all'oggetto.
- Fare clic con il tasto destro del mouse sul controllo e selezionare Apri con > Riferimento all'oggetto.
Esaminare la tabella Riferimenti all'oggetto e notare i riferimenti all'oggetto creati.
- Per esaminare i riferimenti di un determinato oggetto, procedere come segue:
- Dal menu a discesa nella tabella Riferimenti all'oggetto, selezionare Mostra riferimento by.
- Selezionare la classe oggetto, quindi espandere l'elemento.
- Identificare i riferimenti che impediscono di richiamare i nuovi oggetti.
Argomenti correlati
Panoramica sullo strumento Creazione profili
Risorse di creazione profili
Tabella Riferimenti all'oggetto
Attività correlate
Creazione del profilo di un'applicazione
Avvio o collegamento di un processo Java
(C) Copyright IBM Corporation 2000, 2006. Tutti i diritti riservati.