Instrumendid, osa Xcode'ist, on mõeldud peamiselt iOS -i, MACOS, WatchOS ja TVOS -i rakenduste jaoks. Kuigi see on uskumatult tõhus nendes platvormides mälulekke tuvastamiseks, kasutades selliseid tööriistu nagu lekete instrument ja mälugraafik silur, on selle otsene rakendus MVVMcross Applications'i jaoks piiratud. MVVMCROSS on platvormideülene raamistik, mis võimaldab arendada mitme platvormi, sealhulgas Androidi ja iOS-i.
Kui arendate iOS-i jaoks MVVMcrossi rakendust, saate oma rakenduse iOS-i osa jaoks reaalajas mälulekke jälgimiseks instrumente kasutada. Siin on kuidas:
Kasutades instrumente iOS mvvmcrossi rakenduste jaoks
1. käivitusinstrumendid: alustage oma projekti avamisega Xcode'is ja valige Product> Profiil. See käivitab instrumendid.
2. Valige lekete mall: Valige dialoogis Mallivaliku malli mall jaotises Mälu. See mall on spetsiaalselt loodud mälulekke tuvastamiseks.
3. Käivitage rakendus: rakenduse profileerimiseks klõpsake nuppu Salvestus. Suhtlege oma rakendusega nagu tavaliselt, keskendudes eriti aladele, kus kahtlustate mälulekkeid.
4. Analüüsige tulemusi: Pärast suhtlemise lõpetamist lõpetage salvestus. Instrumendid kuvavad graafiku, mis näitab mälu kasutamist aja jooksul. Kui mälulekked on, näete mälu kasutamist suurenedes ilma vastavate langusteta, kui objekte tuleks käsitleda. Graafiku alt leiate lekkinud mäluplokkide loendi koos virnajälgedega, mis näitavad, kus lekked eraldati.
5. Tuvastage ja fikseerige lekked: kasutage virna jälgi, et leida oma koodis lekete allikas. Levinumad probleemid hõlmavad säilitamistsüklit, kus objektidel on üksteisele tugevad viited, takistades käitlemist. Nende kinnitamine hõlmab kinnitustsüklite purustamist, sageli nõrkade või kasutamata viidete abil.
piirangud mitte-OI-platvormide jaoks
MVVMCROSSi rakenduste jaoks, mis on suunatud muudele platvormidele kui iOS (nagu Android), ei saa instrumente otse kasutada. Selle asemel peaksite mälulekke tuvastamiseks kasutama platvormipõhiseid tööriistu:
- Android: kasutage selliseid tööriistu nagu Android Studio mäluprofiili või kolmandate osapoolte raamatukogud, näiteks LeakCanary.
- Muud platvormid: kasutage platvormipõhiseid mäluprofiili tööriistu või raamatukogusid.
Kokkuvõtlikult võib öelda, et kuigi instrumendid on iOS-i rakendustes mälulekke tuvastamiseks, sealhulgas iOS-i jaoks MVVMCrossiga ehitatud mälu lekete tuvastamiseks, ei ole see rakendatav mitte-OI-platvormide jaoks. Platvormideülese arendamiseks peate kasutama iga sihtplatvormi jaoks spetsiifilisi tööriistu.
Tsitaadid:]
]
]
]
]
]
[7] https://forums.developer.apple.com/forums/thread/770061
[8] https://github.com/mvvmcross/mvvmcross/issues/2884