Nástroje, súčasť Xcode, sú primárne navrhnuté pre aplikácie iOS, MacOS, Watchos a TVOS. Aj keď je neuveriteľne efektívne na zisťovanie úniku pamäte v týchto platformách pomocou nástrojov, ako je debugger Graph LEACS a pamäťový graf, je jeho priama aplikácia na aplikácie MVVMCROSS obmedzená. MVVMCROSS je rámec medzi platformami, ktorý umožňuje vývoj viacerých platforiem vrátane Android a iOS.
Ak však vyvíjate aplikáciu MVVMCross pre iOS, môžete použiť nástroje na sledovanie úniku pamäte v reálnom čase pre časť iOS časti vašej aplikácie. Tu je to, ako:
Používanie nástrojov pre aplikácie iOS MVVMCross
1. Spustenie nástrojov: Začnite otvorením projektu v XCode a výberom produktu> Profil. Tým sa spustia nástroje.
2. Vyberte šablónu únikov: V dialógovom okne Výber šablóny vyberte šablónu únikov v časti Pamäť. Táto šablóna je špeciálne navrhnutá na detekciu úniku pamäte.
3. Spustite svoju aplikáciu: Kliknutím na tlačidlo záznamu začnite profilovať svoju aplikáciu. Interakcia s vašou aplikáciou tak, ako by ste normálne zamerali na oblasti, kde sa domnievate, že môžu dôjsť k úniku pamäte.
4. Analyzujte výsledky: Po dokončení interakcií zastavte nahrávanie. Nástroje zobrazia v priebehu času graf zobrazujúci využitie pamäte. Ak dôjde k úniku pamäte, uvidíte zvýšenie využitia pamäte bez zodpovedajúceho poklesu, keď by sa mali objekty riešiť. Pod grafom nájdete zoznam uniknutých pamäťových blokov spolu so stopami zásobníka, ktoré naznačujú, kde boli úniky pridelené.
5. Identifikujte a opravte úniky: Pomocou stôp zásobníka vyhľadajte zdroj únikov v kóde. Bežné problémy zahŕňajú cykly zadržania, kde objekty majú silné odkazy na seba, čo bráni deaktivácii. Oprava ich zahŕňa prelomenie cyklov zadržania, často pomocou slabých alebo nemotorných odkazov.
Obmedzenia pre platformy mimo IOS
V prípade aplikácií MVVMCross zacielené na platformy iné ako iOS (napríklad Android) sa prístroje nemožno použiť priamo. Namiesto toho by ste museli použiť nástroje špecifické pre platformu na detekciu úniku pamäte:
- Android: Používajte nástroje, ako je napríklad profil pamäte Android Studio alebo knižnice tretích strán, ako je LeakCanary.
- Ostatné platformy: Využite nástroje alebo knižnice profilovania pamäte špecifické pre platformu.
Stručne povedané, zatiaľ čo nástroje sú vysoko efektívne na zisťovanie úniku pamäte v aplikáciách iOS, vrátane aplikácií vyrobených s MVVMCross pre iOS, nevzťahuje sa na platformy mimo IOS. Na vývoj viacerých platforiem musíte použiť nástroje špecifické pre každú cieľovú platformu.
Citácie:[1] https://www.netguru.com/blog/what-are-ios-memory-leaks-and-how-to-detect-theM
[2] https://www.reddit.com/r/rust/comments/kpsgin/how_to_find_a_memory_leak_in_a_rust_program/
[3] https://stackoverflow.com/questions/38592689/memory-leak-check-in-real-ime-application
[4] https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/9-finding-memory-leaks-using-using-instruments
[5] https://stackoverflow.com/questions/27008035/MVVMcross-memory-leak-cecaus-of-of-of-ofof
[6] https://forums.ni.com/t5/labview/get-object-memory-leak/td-p/4276905
[7] https://forums.developer.apple.com/forums/thread/770061
[8] https://github.com/mvvmcross/mvvmcross/issues/2884