Hoe u de Allocation Profiler Tool gebruikt

Meggin Kearney
Meggin Kearney

Gebruik de toewijzingsprofilertool om objecten te vinden die niet op de juiste manier worden verzameld, en blijf geheugen behouden.

Hoe het hulpmiddel werkt

De toewijzingsprofiler combineert de gedetailleerde momentopname-informatie van de heap profiler met het incrementeel bijwerken en volgen van het tijdlijnpaneel . Net als bij deze tools omvat het volgen van de heap-allocatie van objecten het starten van een opname, het uitvoeren van een reeks acties en het vervolgens stoppen van de opname voor analyse.

De tool maakt tijdens de opname periodiek heap-snapshots (zo vaak als elke 50 ms!) en één laatste snapshot aan het einde van de opname.

Toewijzingsprofiler

Toewijzingsprofiler inschakelen

Om de toewijzingsprofiler te gaan gebruiken:

  1. Zorg ervoor dat je de nieuwste Chrome Canary hebt.
  2. Open de Developer Tools en klik op het tandwielpictogram rechtsonder.
  3. Open nu het Profiler-paneel. U zou een profiel moeten zien met de naam "Record Heap Allocations"

Record heap toewijzingen profiler

Een heap-toewijzingsprofiel lezen

Het heaptoewijzingsprofiel laat zien waar objecten worden gemaakt en identificeert het vasthoudpad. In de onderstaande momentopname geven de balken bovenaan aan wanneer er nieuwe objecten in de heap worden gevonden.

De hoogte van elke balk komt overeen met de grootte van de recentelijk toegewezen objecten, en de kleur van de balken geeft aan of deze objecten nog steeds actief zijn in de uiteindelijke heap-snapshot. Blauwe balken geven objecten aan die nog steeds live zijn aan het einde van de tijdlijn. Grijze balken geven objecten aan die tijdens de tijdlijn zijn toegewezen, maar sindsdien zijn verzameld:

Momentopname van toewijzingsprofiler

In de onderstaande momentopname werd een actie 10 keer uitgevoerd. Het voorbeeldprogramma slaat vijf objecten op in de cache, dus de laatste vijf blauwe balken worden verwacht. Maar de meest linkse blauwe balk geeft een potentieel probleem aan.

U kunt vervolgens de schuifregelaars in de tijdlijn hierboven gebruiken om in te zoomen op dat specifieke momentopname en de objecten te bekijken die onlangs op dat punt zijn toegewezen:

Inzoomen op momentopname

Als u op een specifiek object in de heap klikt, wordt de bijbehorende boom weergegeven in het onderste gedeelte van de heap-snapshot. Als u het vasthoudpad naar het object onderzoekt, krijgt u voldoende informatie om te begrijpen waarom het object niet is verzameld, en kunt u de benodigde codewijzigingen aanbrengen om de onnodige verwijzing te verwijderen.

Bekijk geheugentoewijzing per functie

U kunt ook de geheugentoewijzing bekijken via de JavaScript-functie. Zie Geheugentoewijzing per functie onderzoeken voor meer informatie.