Geheugenlekken identificeren

Vereisten:

Een geheugenlek is een fout in de dynamische opslagtoewijzingslogica van een programma, die ervoor zorgt dat het terughalen van gewist geheugen mislukt. Dit betekent dat de objecten die niet meer vereist zijn, niet kunnen worden teruggehaald. Een onverwacht groot aantal van deze instances kan wijzen op een geheugenlek. Een ernstig geheugenlek kan ertoe leiden dat de toepassing crasht vanwege een gebrek aan geheugen.

De geheugenlekken worden veroorzaakt door objecten die verwijzingen naar andere objecten vasthouden, zodat de actie opschonen geen vastgehouden objecten kan terughalen.  Met behulp van de tabel Objectverwijzingen kunt u dergelijke verwijzingen identificeren.

Een geheugenlek in een toepassing zoeken

Om een geheugenlek in uw toepassing te vinden, gaat u als volgt te werk:

  1. Selecteer in het perspectief Profileren en vastleggen in logboek de monitor of de agent in de profileringsmonitorview.  
  2. Klik met de rechtermuisknop op de monitor of de agent en selecteer Objectverwijzingen verzamelen. De objectverwijzingen worden verzameld.
  3. Klik opnieuw met de rechtermuisknop en kies Openen met > Objectverwijzing. De tabel Objectverwijzingen wordt geopend.
  4. Selecteer het pictogram van het lokale menu  een knop met een driehoekig pictogram en kies Verwijzing afbeelden naar.
  5. Bekijk de lijst met objecten en het aantal verwijzingen naar de objecten. De objecten met verwijzingen veroorzaken mogelijk een geheugenlekprobleem.  

Een geheugenlek vinden in een bewerking die gericht is op transacties

Deze procedure kan helpen een fase in uw programma te identificeren die nieuwe objecten maakt maar niet vrijgeeft, zodat verwijdering door opschonen wordt voorkomen. Uw programma maakt bijvoorbeeld een dialoogvenster maar de objecten die aan dit dialoogvenster gerelateerd zijn, worden, nadat het venster gesloten is, nog steeds vastgehouden. Om een geheugenlek te identificeren in een op transacties gerichte bewerking, voert u de volgende stappen uit:

  1. Selecteer in het perspectief Profileren en vastleggen in logboek de monitor of de agent in de profileringsmonitorview.  
  2. Verzamel de objectverwijzingen vóór de betreffende bewerking. Klik met de rechtermuisknop en kies Objectverwijzingen verzamelen. De objectverwijzingen worden verzameld.
  3. Klik met de rechtermuisknop op de monitor en kies Openen met > Objectverwijzing. Bekijk de tabel Objectverwijzingen en let op de objectverwijzingen die zijn gemaakt.
  4. Voer de bewerking uit die u wilt controleren.
  5. Verzamel de objectverwijzingen nadat de bewerking is voltooid. Klik met de rechtermuisknop en kies opnieuw Objectverwijzingen verzamelen.
  6. Klik met de rechtermuisknop op de monitor en kies Openen met > Objectverwijzing. Bekijk de tabel Objectverwijzingen en let op de objectverwijzingen die zijn gemaakt.
  7. Om de verwijzingen van een bepaald object te bekijken, voert u de volgende stappen uit:
    1. In het vervolgkeuzemenu in de tabel Objectverwijzingen kiest u Verwijzingen afbeelden per.
    2. Selecteer uw objectklasse en vouw het item uit.
    3. Identificeer de verwijzingen die ervoor zorgen dat de nieuwe objecten niet kunnen worden teruggehaald.

 

Verwante concepten
Overzicht profileringstool
Profileringsresources
Tabel Objectverwijzingen

Verwante taken
Een toepassing profileren
Een Java-proces starten of koppelen