Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan használhatom a memória gráf hibakeresőjét az MVVMCross alkalmazások megtartási ciklusainak azonosításához


Hogyan használhatom a memória gráf hibakeresőjét az MVVMCross alkalmazások megtartási ciklusainak azonosításához


A memória gráf hibakereső használata az Xcode -ban hatékony módszer a megtartási ciklusok azonosítására az MVVMCross alkalmazásokban. Itt van egy lépésről lépésre történő útmutató, hogyan kell csinálni:

Bevezetés a memória grafikon hibakeresőjébe

A memória grafikon hibakereső egy hatékony eszköz az Xcode -ban, amely segít a fejlesztőknek a memória szivárgásainak azonosításában és a ciklusok megtartásával az objektumkapcsolatok memóriában történő megjelenítésével. Pillanatképet biztosít az aktuális memóriaállapotról, megmutatva, hogy mely objektumokat tartják fenn, és hogyan hivatkoznak.

Lépések a ciklusok megőrzéséhez

1. Futtassa az alkalmazást: Kezdje az MVVMCross alkalmazás Xcode -ban történő futtatásával. Győződjön meg arról, hogy teszteli az alkalmazás adott részét, ahol gyanítja, hogy megtartási ciklus fordulhat elő.

2. Nyissa meg a memória grafikon hibakeresőjét: Amint az alkalmazás fut, nyissa meg a Memória Grafikon hibakeresőjét a Visual Debugger és a Location Simulator gombok közötti három csomópont gombra kattintva. Ez rögzíti az alkalmazás jelenlegi állapotának memória pillanatképét.

3. Elemezze a memória pillanatképét: A memória gráf hibakereső bal oldali panelen látható a memóriában lévő objektumok listája, valamint az egyes osztályok példányának száma. Keressen olyan tárgyakat, amelyeknek nem szabad ott lenniük, vagy amelyek váratlanul nagy számú példányt tartalmaznak.

4. Azonosítsa a megtartási ciklusokat: Válasszon egy objektumot a bal oldali panelen a referencia grafikon megtekintéséhez. A grafikon erős referenciákat fog mutatni, mint félkövér vonalak és ismeretlen referenciák (amelyek gyenge vagy erősek lehetnek) világosszürke vonalakként. A megtartási ciklust a grafikonon lévő hurok jelzi, ahol az objektumok oly módon hivatkoznak, hogy megakadályozzák őket az üzlethelyzetben.

5. Navigáljon az Objektum grafikonjain: A megtartási ciklus forrásának nyomon követéséhez előfordulhat, hogy navigálnia kell több objektumgrafikonon. Kezdje a kiszivárgott objektummal, és kövesse a referenciákat hátra, hogy megtalálja azt a szülőobjektumot, amely megtartja azt.

6. Ellenőrizze az objektum részleteit: Amikor a grafikonon egy csomópontra kattint, az ellenőrző panel részletes információkat nyújt az objektumról, beleértve annak tulajdonságait és kapcsolatait. Ez segíthet megérteni, hogy miért tartja meg egy tárgyat.

7. Ismételje meg a magáramlásokat: A megtartási ciklus megerősítéséhez ismételje meg az alkalmazás alapját vagy funkcióját többször, minden iteráció után memória pillanatképeket készít. Ha egy adott objektum példányainak száma az idő múlásával növekszik, akkor ez jelezheti a megtartási ciklust.

8. Javítsa meg a megtartási ciklust: Miután azonosította a megtartási ciklus forrását, javíthatja azt, ha adott esetben a gyenge vagy a nem megfelelő referenciákra való erős hivatkozásokat változtatja meg. Például a bezárások során használja a „[gyenge én]` `-t az„ önmagának `önmagának` önálló elfogásának elkerülése érdekében.

Közös megtartja a ciklus forgatókönyveit az mvvmcross -ban

Az MVVMCross alkalmazásokban a megtartási ciklusok gyakran fordulnak elő a nézetmodellek és a nézetek közötti erős hivatkozások miatt, vagy a bezárások miatt, amelyek a nézetmodellek vagy a nézetek erősen rögzítik. Például, ha egy nézetmodell határozottan hivatkozik a nézetre, és a nézet erősen utal a nézetmodellre, akkor egyiket sem lehet megbeszélni.

Az ilyen ciklusok elkerülése érdekében ellenőrizze, hogy a nézet modelljeit megfelelően megtisztítsák, amikor a nézeteket elutasítják. Használjon életciklus -módszereket, amelyeket az MVVMCross biztosított, mint például a „eltűnt ()”, az erőforrások felszabadításához és a felesleges referenciák megszakításához.

Ezeknek a lépéseknek a követésével és az objektumkapcsolatok megjelenítésének megértésével a memória gráf hibakeresője során hatékonyan azonosíthatja és rögzítheti a megtartási ciklusokat az MVVMCross alkalmazásokban.

Idézetek:
[1] https://doordash.engineering/2019/05/22/ios-memory-leaks-and--reain-cycle-detection-using-xcodes-memory-graph-debugger/
[2] https://careersatdoordash.com/blog/ios-memory-leaks-and--reain-cycle-detection-using-xcodes-memory-graph-debugger/
[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-rease/
[6] https://www.donnywals.com/using-xcodes-memory-graph-find-memory-leaks/
[7] https://moldstud.com/articles/p-swift-memory-management-tips-for-retain-cycle-issues
[8] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[9] https://digginginthecode.wordpress.com/2016/06/14/xamarin-performance-advices/