Wenn Ihnen die Größe eines 1G-Heapspeichers ausgeht, beginnen Sie mit der Optimierung der Ressourcen.
Überprüfen Sie zunächst, ob Sie keine Bildinstanzen duplizieren, und behalten Sie dasselbe Bild mehrmals im Speicher. Verwenden Sie dazu die ffimageloading-Bibliothek ( https://github.com/luberda-molinet/FFImageLoading ), um sie schnell und einfach auf nuget zu bringen.
Optimieren Sie dann die von Ihnen verwendeten Bilder. Versuchen Sie bei großen Bildern, außer Symbolen, alles in JPEG umzuwandeln, ohne PNG mit Transparenz zu vermeiden, was mich einst für konstante Ooms gerettet hat.
Versuchen Sie dann, Miniaturansichten anstelle von Bildern zu verwenden, wenn Sie möglicherweise große hochgeladene Bilder auf der Fernbedienung haben. Erstellen Sie auf Ihrem Server Miniaturansichten für verschiedene Größen (Mini, Klein, Mittel, Normal, Groß, Groß usw.) und laden Sie nur Bilder mit der Größe, die Sie wirklich benötigen. Das spart viel Speicher und Geschwindigkeit.
Ein anderer ist Speicherlecks. Möglicherweise befinden sich Zellen oder andere Elemente noch im Speicher, wenn sie sich nicht von Nachrichten, Ereignishandlern und anderen abmelden. Stellen Sie sich vor, Sie könnten mehrere Kopien einer Liste voller Bilder noch im Speicher haben, wenn Sie sicher sind, dass dies nicht möglich ist. Mehr Infos hier:
https://forums.xamarin.com/discussion/123876/should-we-unsubscribe-all-events-for-memory-management
https://forums.xamarin.com/discussion/87206/messaging-center-unsubscribe-from-all-messages-when-broadcast-stops