Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka voin käyttää muistikaaviotyökalua muistivuotojen tunnistamiseen MVVMCross -sovelluksissa


Kuinka voin käyttää muistikaaviotyökalua muistivuotojen tunnistamiseen MVVMCross -sovelluksissa


Muistivuotojen tunnistamiseksi MVVMCross -sovelluksissa muistikaaviotyökalun avulla voit noudattaa näitä vaiheita, joita voidaan yleensä soveltaa iOS -kehitykseen Xcodella. Vaikka MVVMCross on alustojen välinen kehys, muistikaaviotyökalu on erityinen iOS-kehitykselle Xcode-alueella.

Memory Graafin virheenkorjauksen avulla

1. Käynnistä sovelluksesi muistikaavion virheenkorjauksella: **
- Avaa projekti Xcodeissa ja varmista, että olet virheenkorjaustilassa.
- Siirry Debug -valikkoon ja valitse Debug Memory -kaavio. Tämä käynnistää sovelluksesi muistikaavion virheenkorjauksella käytössä.

2. Suorita ydinvirtojen läpi: **
- Selaa sovelluksesi ydinvirtauksia, kuten avaus- ja sulkemisohjaimia, suorittamalla toimintoja, jotka sisältävät tietojen sitoutumista, ja kaikki muut kriittiset polut, joihin voi liittyä muistin allokointia.
- Toista nämä virrat useita kertoja nähdäksesi, kasvaako muistin käyttö odottamatta.

3. Ota muistin tilannekuvia: **
- Kun olet suorittanut näiden virtausten läpi, ota muistin tilannekuva napsauttamalla Debug Memory Graph -painiketta uudelleen. Tämä keskeyttää sovelluksesi ja antaa tilannekuvan nykyisestä muistitilasta.

4. Tarkasta muistin tilannekuvat: **
- Muistikaavion virheenkorjauksessa näet muistissa olevien esineiden graafisen esityksen solmuina, joiden väliset suhteet ovat reunoja.
- Etsi esineitä, joiden ei pitäisi enää olla muistissa. Esimerkiksi, jos näet useita näkymäohjaimen tai näkymämallin tapauksia, jotka olisi pitänyt käsitellä, se saattaa viitata muistivuotoon.

5. Tunnista vuotavat esineet: **
- Napsauta solmua, joka edustaa objektia, jonka ei pitäisi olla muistissa. Virheenkorjaus näyttää sinulle kaikki viittaukset tähän objektiin, mikä auttaa sinua tunnistamaan, miksi se säilytetään.
- Jäljitä Object -kuvaajaa, jotta voit jäljittää emo -solmun tai objektin, joka pitää vuotanut objekti muistissa.

6. Korjaa vuoto: **
- Kun olet tunnistanut vuodon lähteen, tarkista koodisi löytääksesi missä vahvat viitteet pidetään. Yleisiä kysymyksiä ovat:
- julkaisemattomat tapahtumien käsittelijät.
- Vahvat viitteet näkymämalleissa näkymiin tai muihin objekteihin, joiden tulisi olla heikko.
- Syklit datasidoksissa.

7. Varmista korjaukset: **
- Kun olet tehnyt muutoksia potentiaalisten vuotojen korjaamiseksi, toista ytimen virtausten läpi kulkeva prosessi ja ottamalla muistin tilanne varmistaaksesi, että muistin käyttö ei kasva odottamatta.

Lisätyökaluja alustojen väliseen kehitykseen

Vaikka muistikaaviotyökalu on erityinen iOS: lle, alustojen välisille kehyksille, kuten MVVMCross, sinun on ehkä myös käytettävä alustakohtaisia ​​työkaluja muille alustoille:

- Android: Käytä Android -profiloijaa tai vuotokarvaa muistivuotojen havaitsemiseksi.
- Windows (Maui): Hyödynnä työkaluja, kuten Visual Studion diagnostiikkatyökaluja tai kolmansien osapuolien kirjastoja, kuten Memorytoolkit.maui, muistivuotojen tunnistamiseksi.

Yhdistämällä nämä lähestymistavat voit tunnistaa ja korjata muistivuodot tehokkaasti MVVMCross -sovelluksissa eri alustojen välillä.

Viittaukset:
[1] https://www.reddit.com/r/dotnetmaui/comments/1c1qlou/maui_memory_leaks/
.
.
.
.
[6] https://developer.android.com/studio/profile/memory-profiler
[7] https://github.com/dotnet/maui/wiki/memory-leaks
[8] https://forums.developer.apple.com/forums/thread/713062
[9] https://www.tothenew.com/blog/memory-leak-with-memory-graph-debugger/