Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas kasutada mälugraafiku silujat MVVMcrossi rakendustes hoidmistsüklite tuvastamiseks


Kuidas kasutada mälugraafiku silujat MVVMcrossi rakendustes hoidmistsüklite tuvastamiseks


Mälugraafiku siluja kasutamine XCode'is on tõhus viis MVVMCrossi rakendustes hoidmistsüklite tuvastamiseks. Siin on samm-sammuline juhend, kuidas seda teha:

Sissejuhatus mälugraafi silurisse

Mälugraafiku silur on Xcode'is võimas tööriist, mis aitab arendajatel tuvastada mälulekked ja säilitada tsüklid, visualiseerides objektide suhteid mälus. See annab ülevaate praegusest mälu olekust, mis näitab, millised objektid säilitatakse ja kuidas neile viidatakse.

sammud kinni hoidmise tsüklite tuvastamiseks

1. Käivitage rakendus: alustage oma MVVMCROSS -i rakenduse käivitamisega Xcode'is. Veenduge, et testite rakenduse konkreetset osa, kus kahtlustate, et säilitutsükkel võib tekkida.

2. Avage mälugraafiku silur: kui teie rakendus töötab, avage mälugraafiku silur, klõpsates Xcode'i tööriistaribal visuaalse siluri ja asukoha simulaatori nuppude vahel asuva kolme sõlme nuppu. See kajastab teie rakenduse praeguse oleku mälupildi.

3. Analüüsige mälupilti: mälugraafiku siluri vasakpoolses paneelis näete praegu mälus olevate objektide loendit koos iga klassi eksemplaride arvuga. Otsige objekte, mida ei tohiks seal olla või millel on ootamatult suur arv juhtumeid.

4. Tuvastage kinnipeetud tsüklid: valige vasakult paneelilt objekt, et vaadata selle võrdlusgraafikut. Graafik näitab tugevaid viiteid julgete joontena ja tundmatuid viiteid (mis võivad olla nõrgad või tugevad) helehallidena. Kinni tsüklit tähistab graafiku silmusega, kus objektid viitavad üksteisele viisil, mis takistab nende käsitlemist.

5. Navigeerige objektide graafikutel: hoidmistsükli allika jälgimiseks peate võib -olla liikuma läbi mitme objekti graafiku. Alustage lekkinud objektiga ja järgige viiteid tagasi, et leida vanemobjekt, mis seda säilitab.

6. Kontrollige objekti üksikasju: kui klõpsate graafiku sõlmel, annab kontrollpaneel objekti kohta üksikasjalikku teavet, sealhulgas selle omadusi ja suhteid. See aitab teil mõista, miks objekti säilitatakse.

7. Korrake tuumavooge: kinnitustsükli kinnitamiseks korrake oma rakenduses mitu korda südamiku voolu või funktsiooni, tehes pärast iga iteratsiooni mälupilte. Kui konkreetse objekti eksemplaride arv aja jooksul suureneb, võib see näidata säilituskohta.

8. Fikseerige hoidmistsükkel: kui olete kinni hoidmistsükli allika tuvastanud, saate selle parandada, muutes vajaduse korral tugevaid viiteid nõrkade või kasutamata viidetele. Näiteks kasutage sulgemistes "[nõrk ise]", et vältida "enese" tugevat jäädvustamist.

MVVMCROSSi tavalised säilitamise tsükli stsenaariumid

MVVMCROSS -i rakendustes esinevad säilitamistsüklid sageli tugevate viidete tõttu vaatemudelite ja vaadete vahel või sulgemise tõttu vaatemudelite või vaadete tugevalt jäädvustamise tõttu. Näiteks kui vaatemudelil on tugev viide vaatele ja vaade on ka tugev viite tagasivaate mudelile, siis kumbagi ei saa käsitleda.

Selliste tsüklite vältimiseks veenduge, et teie vaatemudelid oleksid vaadete rahuldamatamisel korralikult puhastatud. Kasutage ressursside vabastamiseks ja tarbetute viidete väljaandmiseks kasutage MVVMCROSSi pakutavaid elutsüklimeetodeid, näiteks kadunud () `.

Järgides neid samme ja mõistes, kuidas objektisuhted mälugraafiku siluris visualiseeritakse, saate oma MVVMcrossi rakendustes tõhusalt tuvastada ja kinnitada.

Tsitaadid:
]
]
[3] https://www.tothenew.com/blog/memory-leak-with-memory-graph-debugger/
[4] https://forums.developer.apple.com/forums/thread/112268
[5] https://www.mvvmcross.com/mvvmcross-5-release/
]
]
]
]