Identificér hukommelsesfejl

Forudsætninger:

En hukommelsesfejl er en fejl i et programs dynamiske lagerallokeringslogik, der bevirker, at det ikke genskaber slettet hukommelse. Det vil sige, at objekter, der ikke længere kræves, ikke bliver genskabt. Uventede store antal af sådanne forekomster kan antyde, at der er tale om hukommelsesfejl. Hvis en hukommelsesfejl er alvorlig, kan den føre til, at programmet bryder sammen, fordi det løber tør for hukommelse.

Hukommelsesfejl er forårsaget af objekter, der fortsætter med at bevare referencer til andre objekter, og dermed forhindrer renovation i at genskabe de tilbageholdte objekter. Tabellen Objektreferencer kan bruges til at hjælpe med at identificere sådanne referencer.

Søg efter hukommelsesfejl i et program

Udfør følgende for at identificere en hukommelsesfejl i programmet:

  1. I perspektivet Profilering og logning skal du vælge overvågningen eller agenten i oversigten Profileringsovervågning. 
  2. Højreklik på overvågningen eller agenten, og vælg Opsaml objektreferencer. Objektreferencer bliver nu opsamlet.
  3. Højreklik igen, og vælg Åbn med > Objektreference. Tabellen Objektreferencer åbnes.
  4. Vælg ikonen for den lokale menu knap med trekantikon, og vælg Vis reference til.
  5. Undersøg listen over objekter og antallet af referencer til dem. De objekter, der har referencer, udgør et potentielt hukommelsesfejlproblem. 

Søg efter hukommelsesfejl i transaktionsorienteret funktion

Denne procedure kan hjælpe med at identificere en fase i programmet, der opretter nye objekter, men som ikke frigiver dem, hvilket forhindrer, at de fjernes via renovation. Eksempelvis opretter dit program et dialogboksvindue, men objekter, der er relateret til dialogboksen, fastholdes fortsat, efter at vinduet er lukket. Udfør følgende for at identificere en hukommelsesfejl i en transaktionsorienteret funktion:

  1. I perspektivet Profilering og logning skal du vælge overvågningen eller agenten i oversigten Profileringsovervågning. 
  2. Opsaml objektreferencer før den pågældende funktion. Højreklik, og vælg Opsaml objektreferencer. Objektreferencer bliver nu opsamlet.
  3. Højreklik på overvågningsprogrammet, og vælg Åbn med > Objektreference. Undersøg tabellen Objektreferencer, og bemærk de objektreferencer, der er oprettet.
  4. Udfør den funktion, du vil undersøge.
  5. Opsaml objektreferencer, efter funktionen er udført. Højreklik, og vælg Opsaml objektreferencer igen.
  6. Højreklik på overvågningsprogrammet, og vælg Åbn med > Objektreference. Undersøg tabellen Objektreferencer, og bemærk de objektreferencer, der er oprettet.
  7. Udfør følgende for at undersøge et bestemt objekts referencer:
    1. Vælg Vis reference fra på menuen i tabellen Objektreferencer.
    2. Vælg objektklassen, og udvid elementet.
    3. Identificér de referencer, der forhindrer, at nye objekter bliver genskabt.

 

Relaterede begreber
Oversigt over profileringsværktøjet
Profileringsressourcer
Tabellen Objektreferencer

Relaterede opgaver
Profilér et program
Start eller tilknyt en Java-proces