Az MVVMCross alkalmazások memóriaszivárgásainak azonosításához a Memória Graph eszköz használatával követheti ezeket a lépéseket, amelyek általában alkalmazhatók az iOS fejlesztésére az Xcode segítségével. Noha az MVVMCross platformok közötti keret, a memória grafikon eszköz az iOS fejlesztésére vonatkozik az Xcode-en belül.
A memória gráf hibakereső használata
1. Indítsa el az alkalmazást a Memory Graph hibakeresőjével: **
- Nyissa meg a projektet Xcode -ban, és győződjön meg arról, hogy hibakeresési módban van -e.
- Lépjen a hibakeresési menübe, és válassza a Memória Memória grafikon lehetőséget. Ez elindítja az alkalmazást a Memory Graph hibakeresővel engedélyezve.
2. Futtassa át a magáramokat: **
- Keresse meg az alkalmazás alapvető áramlásait, például a View Controler megnyitását és bezárását, az adatkötést magában foglaló műveleteket és minden más kritikus útvonalat, amelyek magukban foglalhatják a memóriaelosztást.
- Ismételje meg többször ezeket az áramlásokat, hogy megnézze, hogy a memória használata váratlanul növekszik -e.
3. Vegyünk memória pillanatképeket: **
- Miután átfutott ezeken az áramlásokon, készítsen egy memória pillanatképet, ha újra kattint a Memória Grafikon Grafikon gombra. Ez szüneteltetheti az alkalmazást, és pillanatképet biztosít az aktuális memóriaállapotról.
4. Ellenőrizze a memória pillanatképeit: **
- A memória grafikon hibakeresőben az objektumok grafikus ábrázolását láthatja a memóriában, mint csomópontok, a kapcsolatok között.
- Keressen olyan tárgyakat, amelyeknek már nem szabad a memóriában lennie. Például, ha több példányt lát egy nézetvezérlő vagy nézetmodell, amelyet meg kellett volna rendezni, akkor ez memória szivárgását jelezheti.
5. Határozza meg a kiszivárgott objektumokat: **
- Kattintson egy olyan csomópontra, amely olyan objektumot képvisel, amelynek nem szabad a memóriában lennie. A hibakereső megmutatja az összes hivatkozást erre a tárgyra, segít azonosítani, hogy miért tartják fenn.
- Az objektum gráf segítségével nyomon követheti azt a szülő csomópontot vagy objektumot, amely a kiszivárgott objektumot a memóriában tartja.
6. Javítsa ki a szivárgást: **
- Miután azonosította a szivárgás forrását, vizsgálja felül a kódját, hogy megtalálja, hol tartják az erős hivatkozásokat. A gyakori kérdések a következők:
- A nem kiadott eseménykezelők.
- Erős hivatkozások a nézet modelleire vagy más objektumokra, amelyeknek gyengének kell lenniük.
- Tartsa meg az adatkötések ciklusait.
7. Ellenőrizze a javításokat: **
- Miután változtatásokat hajtott végre a potenciális szivárgások javítása érdekében, ismételje meg a magáramok átfutásának folyamatát és a memória pillanatképeit pedig annak biztosítása érdekében, hogy a memóriafelhasználás ne növekedjen váratlanul.
További eszközök a platformok közötti fejlesztéshez
Míg a memória grafikon eszköz az iOS-ra vonatkozik, a platformok közötti keretekhez, mint például az MVVMCross, előfordulhat, hogy platformspecifikus eszközöket is használhat más platformokhoz:
- Android: Használja az Android Profiler vagy a LeakCanary -t a memória szivárgásainak észlelésére.
- Windows (MAUI): Használjon olyan eszközöket, mint a Visual Studio diagnosztikai eszközei vagy harmadik fél könyvtárai, például a memorytoolkit.maui a memória szivárgásainak azonosításához.
Ezeknek a megközelítéseknek a kombinálásával hatékonyan azonosíthatja és rögzítheti a memória szivárgásait az MVVMCross alkalmazásokban a különböző platformokon.
Idézetek:[1] https://www.reddit.com/r/dotnetmaui/comments/1c1qlou/maui_memory_leaks/
[2] https://proandroiddev.com/memory-leaks-in-reactive-droid-programming-a4ad2b34466a
[3] https://careersatdoordash.com/blog/ios-memory-leaks-and--reain-cycle-detection-using-xcodes-memory-graph-debugger/
[4] https://www.netguru.com/blog/what-are-os-memory-leaks-and-how-to-detect-them
[5] https://www.linkedin.com/advice/1/how-can-you-prevent-memory-leaks-mvvm-skills-software-design-hsx1c
[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/