Вступить в клуб →
средняявопросUI, контент и мобильная сборка

Экран коллекции грузит иконки каждый раз, память растёт до вылета

Экран коллекции при открытии асинхронно грузит около 120 иконок через систему адресуемых ассетов и раскладывает их по ячейкам. При закрытии экран просто уничтожается. Игроки на устройствах с двумя гигабайтами памяти жалуются: после десятка заходов в коллекцию игра вылетает, а профайлер памяти показывает, что бандлы с иконками накапливаются. В чём причина?

  • Сборщик мусора освобождает такие ассеты сам, как только на них не осталось ссылок в C#: значит, утечка в коде экрана, который держит ссылки в статике
  • Память растёт из-за асинхронной загрузки: каждая незавершённая операция держит свою копию бандла, синхронная загрузка проблему снимет
  • Дело в фрагментации памяти на устройстве: помогает перезагрузка сцены между экранами, она возвращает кучу в исходное состояние
  • Бандл держится, пока не обнулится счётчик обращений: каждой загрузке нужно парное освобождение при закрытии экрана

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела