Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ar instrumentai gali būti naudojami atminties nutekėjimui sekti realiuoju laiku „MVVMCross“ programoms


Ar instrumentai gali būti naudojami atminties nutekėjimui sekti realiuoju laiku „MVVMCross“ programoms


Instrumentai, „Xcode“ dalis, pirmiausia skirta „iOS“, „MacOS“, „WatchOS“ ir „TVOS“ programoms. Nors jis yra neįtikėtinai efektyvus aptikti atminties nutekėjimą šiose platformose, naudojant tokius įrankius kaip „LEACKS“ instrumentas ir atminties grafiko derinimo priemonė, jos tiesioginis pritaikymas MVVMCross programoms yra ribotas. „MVVMCross“ yra įvairių platformų sistema, leidžianti kurti kelioms platformoms, įskaitant „Android“ ir „iOS“.

Tačiau jei kuriate „MVVMCross“ programą „iOS“, galite naudoti instrumentus, kad realiu laiku stebėtumėte atminties nutekėjimą „iOS“ programos „iOS“ dalyje. Čia kaip:

„iOS MVVMCross“ programų instrumentų naudojimas

1. Paleidimo instrumentai: Pradėkite atidarę savo projektą „Xcode“ ir pasirinkdami produktą> profilį. Tai paleis instrumentus.

2. Šis šablonas yra specialiai sukurtas atminties nutekėjimui nustatyti.

3. Paleiskite savo programą: spustelėkite mygtuką Įrašyti, kad pradėtumėte profiliuoti savo programą. Bendraukite su savo programa taip, kaip įprastai, ypač sutelkdami dėmesį į sritis, kuriose įtariate, kad atminties nutekėjimas gali įvykti.

4. Išanalizuokite rezultatus: Baigę sąveiką, sustabdykite įrašą. Instrumentuose bus rodoma diagrama, kurioje laikui bėgant bus atminties naudojimas. Jei yra atminties nutekėjimų, pamatysite, kad atminties naudojimo padidėjimas padidėja be atitinkamo sumažėjimo, kai daiktai turėtų būti išskiriami. Žemiau diagramos rasite nutekėjusių atminties blokų sąrašą kartu su krūvos pėdsakais, rodančiais, kur buvo paskirstytos nutekėjimai.

5. Nustatykite ir ištaisykite nuotėkius: naudokite kamino pėdsakus, kad nustatytumėte savo kode nutekėjimo šaltinį. Bendrosios problemos apima išlaikymo ciklus, kai objektai turi tvirtas nuorodas vienas į kitą, užkirsti kelią susitarimui. Ištaisyti tai reiškia, kad reikia sulaužyti laikymo ciklus, dažnai naudojant silpnas ar nepažeistas nuorodas.

„NeSIOS“ platformų apribojimai

„MVVMCross“ programoms, nukreiptoms į kitas, išskyrus „iOS“ (pvz., „Android“) platformas, instrumentai negali būti naudojami tiesiogiai. Vietoj to, jums reikės naudoti atminties nuotėkio aptikimo konkrečias platformai būdingus įrankius:

- „Android“: naudokite tokius įrankius kaip „Android Studio“ atminties profiliuotojas arba trečiųjų šalių bibliotekos, tokios kaip „Leakcanary“.
- Kitos platformos: naudokite konkrečios platformos atminties profiliavimo įrankius arba bibliotekas.

Apibendrinant galima pasakyti, kad nors instrumentai yra labai veiksmingi nustatant atminties nutekėjimą „iOS“ programose, įskaitant tas, kurios pastatytos su „MVVMCross“ „iOS“, ji netaikoma ne AOS platformoms. Norėdami sukurti kryžminio platformos kūrimą, turite naudoti įrankius, būdingus kiekvienai tikslinei platformai.

Citatos:
[1] https://www.netguru.com/blog/what-are-ios-memory-reaks-and-how-todetect-them
]
[3] https://stackoverflow.com/questions/38592689/memory-reak-check-in-real-lectime-application
[4] https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/9-finding-memory-reaks-using instruments
[5] https://stackoverflow.com/questions/27008035/mvvmcross-memory-reak-fecause-of-not-pieping-viewmodels
[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