Коли у вас закінчиться розмір купи 1G, почніть оптимізувати ресурси.
Спочатку перевірте, чи не дублюєте ви екземпляри зображень, зберігаючи одне і те ж зображення в пам'яті кілька разів. Для цього використовуйте бібліотеку ffimageloading ( https://github.com/luberda-molinet/FFImageLoading ) швидко і просто завантажте її на nuget.
Потім оптимізуйте зображення, які ви використовуєте. Для великих зображень, крім піктограм, спробуйте перетворити все на jpeg, уникаючи png з прозорістю, що колись врятувало мене для постійних звуків.
Потім спробуйте використовувати ескізи замість зображень, коли на пульті можуть бути великі завантажені зображення. На вашому сервері заздалегідь створіть мініатюри різних розмірів, міні, малі, середні, звичайні, великі, великі тощо, і завантажте лише зображення потрібного вам розміру. Це економить багато пам’яті та швидкості.
Інший - витік пам'яті. Можливо, клітини або інші елементи все ще зберігаються в пам'яті, якщо вони не відписалися від повідомлень, обробників подій та деяких інших. Уявіть, що у вас може бути кілька копій списку, повного зображень, які все ще є в пам'яті, коли ви впевнені, що цього не могло статися. Більше інформації тут:
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