Identifiera minnesläckor
Förutsättningar:
En minnesläcka är ett fel i ett programs dynamiska lagringsallokeringslogik som gör att programmet misslyckas med att återta borttaget minne. Det betyder att objekt som inte längre behövs inte återtas. Ett oväntat stort antal sådana förekomster kan orsaka minnesläckor. En minnesläcka kan, om den är allvarlig, leda till att en tillämpning komprimeras om den får slut på minne.
Minnesläckor orsakas av objekt som håller kvar referenser till andra objekt, och gör att objekt som hålls inte kan återtas vid skräpinsamling. Du kan använda objektreferenstabellen till att identifiera sådana referenser.
Söka efter minnesläckor i tillämpningar
När du vill identifiera en minnesläcka i en tillämpning utför du följande steg:
- Välj antingen övervakaren eller agenten i profileringsövervakningsrvyn under profilerings- och loggningsperspektiv.
- Högerklicka och välj Samla in objektreferenser. Objektreferenserna samlas in.
- Högerklicka igen och välj Öppna med > objektreferens. Objektreferenstabellen öppnas.
- Välj den lokala menyikonen
och välj Visa referenser till.
- Undersök listan över objekt och antalet referenser till dem. De som har referenser är ett potentiellt minnesläckeproblem.
Sök efter minnesläckor i transaktionsorienterade åtgärder
Den här processen kan identifiera en fas i programmet där nya objekt skapas, men inte frigörs, vilket gör att de inte kan tas bort vid skräpinsamling.
Till exempel skapas dialogrutor via programmet, men objekt som är kopplade till dialogrutan hålls kvar efter att fönstret har stängts. När du vill identifiera en minnesläcka i en tillämpning utför du följande steg:
- Välj antingen övervakaren eller agenten i profileringsövervakningsrvyn under profilerings- och loggningsperspektiv.
- Samla in objektreferenser före själva åtgärden.
Högerklicka och välj Samla in objektreferenser. Objektreferenserna samlas in.
- Högerklicka på övervakaren och välj Öppna med > objektreferens. Undersök objektreferenstabellen och notera de objektreferenser som har skapats.
- Kör den åtgärd du vill undersöka.
- Samla in objektreferenser efter att åtgärden har slutförts.
Högerklicka och välj Samla in objektreferenser igen.
- Högerklicka på övervakaren och välj Öppna med > objektreferens.
Undersök objektreferenstabellen och notera de objektreferenser som har skapats.
- När du vill undersöka referenserna för ett specifikt objekt utför du följande steg:
- Välj Visa referenser efter i listrutan på menyn i objektreferenstabellen.
- Välj objektklass och expandera därefter objektet.
- Idenfiera de referenser som förhindrar att nya objekt återtas.
Närliggande begrepp
Översikt över profileringsverktyget
Profilera resurser
Objektreferenstabell
Närliggande uppgifter
Profilera en tillämpning
Starta och ansluta till en Java-process
(C) Copyright IBM Corporation 2000, 2006. All Rights Reserved.