Finne minnelekkasjer

Forutsetninger:

En minnelekkasje er en feil i programmets dynamiske lagertildelingslogikk som fører til at det ikke er mulig å gjenvinne minne som er fjernet. Det vil si, objekter som ikke lenger kreves, kan ikke gjenvinnes. Et stort antall slike forekomster kan uventet antyde minnelekkasjer. Hvis en minnelekkasje er alvorlig, kan den føre til at applikasjonen ikke fungerer på grunn av for lite minne.

Minnelekkasjer skyldes objekter som fortsatt har referanser til andre objekter, og dermed hindrer gjenvinning av disse objektene. Du kan bruke tabellen Objektreferanser til å identifisere slike referanser.

Finne en minnelekkasje i en applikasjon

Slik identifiserer du en minnelekkasje i applikasjonen:

  1. Velg enten en overvåker eller en agent i visningen Profileringsovervåker i perspektivet Profilering og logging. 
  2. Høyreklikk og velg Samle inn objektreferanser. Objektreferansene blir samlet inn.
  3. Høyreklikk igjen og velg Åpne i > Objektreferanse. Tabellen Objektreferanser blir åpnet.
  4. Velg det lokale menyikonet Knapp med trekant-ikon og velg Vis referanse til.
  5. Undersøk listen med objekter og referansene til objektene. Objekter med referanser kan være årsaken til minnelekkasjer. 

Finne en minnelekkasje i en transaksjonsoperasjon

Denne fremgangsmåten kan hjelpe deg med å finne en fase i programmet som oppretter nye objekter, men som ikke frigir objektene og dermed hindrer at de blir fjernet gjennom avfallsinnsamlingsfunksjonen. La oss anta at programmet ditt oppretter en dialogboks, og at objekter som er knyttet til dialogboksen, fortsatt blir holdt etter at vinduet er lukket. Slik identifiserer du en minnelekkasje i en transaksjonsorientert operasjon:

  1. Velg enten en overvåker eller en agent i visningen Profileringsovervåker i perspektivet Profilering og logging. 
  2. Samle inn objektreferanser før den aktuelle operasjonen. Høyreklikk og velg Samle inn objektreferanser. Objektreferansene blir samlet inn.
  3. Høyreklikk på overvåkeren og velg Åpne i > Objektreferanse. Undersøk tabellen Objektreferanser og legg merke til objektreferansene som er opprettet.
  4. Kjør operasjonen du vil undersøke.
  5. Samle inn objektreferanser etter at operasjonen er fullført. Høyreklikk og velg Samle inn objektreferanser på nytt.
  6. Høyreklikk på overvåkeren og velg Åpne i > Objektreferanse. Undersøk tabellen Objektreferanser og legg merke til objektreferansene som er opprettet.
  7. Slik undersøker du referansene til et bestemt objekt:
    1. Velg Vis referanse etter.
    2. Velg objektklassen og utvid deretter elementet.
    3. Identifiser referansene som hindrer at de nye objektene gjenvinnes.

 

Beslektede begreper
Oversikt over profileringsverktøyet
Profileringsressurser
Objektreferansetabell

Beslektede oppgaver
Profilere en applikasjon
Starte eller koble seg til en Java-prosess