Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Használhatók-e eszközök a memória szivárgásainak valós időben nyomon követésére az MVVMCross alkalmazásokhoz


Használhatók-e eszközök a memória szivárgásainak valós időben nyomon követésére az MVVMCross alkalmazásokhoz


Az Xcode részét képező hangszereket elsősorban iOS, MacOS, Watchos és TVOS alkalmazásokhoz tervezték. Noha hihetetlenül hatékony a memóriaszivárgások észlelésére ezekben a platformokban, olyan eszközökkel, mint a Szivárgások Instrumentum és a Memory Graph Debugger, az MVVMCross alkalmazásokhoz való közvetlen alkalmazása korlátozott. Az MVVMCross egy platformok közötti keret, amely lehetővé teszi a több platform fejlesztését, beleértve az Androidot és az iOS-t.

Ha azonban egy MVVMCross alkalmazást fejleszt az iOS-hez, akkor az eszközökkel valós időben nyomon követheti a memória szivárgásait az alkalmazás iOS-részén. Itt: hogyan:

Instrumentumok használata iOS MVVMCross alkalmazásokhoz

1. Indítás Instruments: Kezdje a projekt megnyitásával az Xcode -ban, és válassza a termék> Profil kiválasztását. Ez elindítja az eszközöket.

2. Válassza ki a szivárgássablont: A sablon kiválasztási párbeszédpanelen válassza ki a szivárgás sablont a memória szakasz alatt. Ezt a sablont kifejezetten a memóriaszivárgás észlelésére tervezték.

3. Futtassa az alkalmazás futtatását: Kattintson a Rekord gombra az alkalmazás profilozásának megkezdéséhez. Kölcsönhatásba lépjen az alkalmazásával, mint általában, főleg olyan területekre összpontosítva, ahol gyanítja a memória szivárgásait.

4. Elemezze az eredményeket: Miután befejezte az interakciókat, hagyja abba a felvételt. A műszerek egy grafikon jelenik meg, amely az idő múlásával mutatja be a memória használatát. Ha vannak memóriaszivárgások, akkor a memóriahasználat növekedése megfelelő csökkenés nélkül látja, ha az objektumokat el kell rendezni. A grafikon alatt megtalálja a kiszivárogtatott memóriablokkok listáját, valamint a verem nyomkövetési nyomokat, amelyek jelzik, hogy a szivárgást hol osztják ki.

5. Azonosítsa és javítsa ki a szivárgásokat: Használja a verem nyomait a kódban lévő szivárgások forrásának megkereséséhez. Általános kérdések között szerepel a megtartási ciklusok, ahol az objektumok erősen hivatkoznak egymásra, megakadályozva az üzlethelyzetet. Ezeknek a rögzítése magában foglalja a megtartási ciklusok megszakítását, gyakran gyenge vagy nem viseletlen referenciák felhasználásával.

Korlátozások a nem IOS platformokhoz

Az iOS -tól eltérő platformokat célzó MVVMCross alkalmazásokhoz (például az Android) a műszerek nem használhatók közvetlenül. Ehelyett platformspecifikus eszközöket kell használnia a memória szivárgásának észleléséhez:

- Android: Használjon olyan eszközöket, mint az Android Studio memóriaprofilja vagy harmadik fél könyvtárai, mint például a LeakCanary.
- Egyéb platformok: Használjon platformspecifikus memóriaprofil-eszközöket vagy könyvtárakat.

Összefoglalva: míg a műszerek rendkívül hatékonyak az iOS alkalmazások memóriaszivárgásainak észlelésére, ideértve az MVVMCross-szal épített iOS-t is, ez nem alkalmazható a nem IOS platformokra. A platformok közötti fejlesztéshez az egyes célplatformokhoz specifikus eszközöket kell használnia.

Idézetek:
[1] https://www.netguru.com/blog/what-are-os-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-time-pplication
[4] https://www.kodeco.com/books/swiftui-cookbook/v1.0/chapters/9-dinding-memory-Leaks-using-instruments
[5] https://stackoverflow.com/questions/27008035/mvvmcross-memory-leak-beause-of-not-disposed-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