|
|
|||||
Загрузка ресурсов и память
Доброго времени суток!
Не могу придумать принципы загрузки ресурсов с последующим освобождением памяти. Как было: - есть ресурс с 2-мя стадиями - загрузка и парсинг - обе асинхронные - если какой-то ресурс потребовался - загружаем, парсим и отдаем распарсенное по колбеку, при повторном запросе - сразу отдаем распарсенное - если есть некоторые анимации, которые надо проиграть сразу - лазием по модели, смотрим что нужно и грузим до загрузки "локации" или диалога. Проблема одна: - распарсенные ресурсы застревают в памяти, и если в сжатом виде они весят метров 15, то в распарсенном могут забить все 200 Напрашивается способ очистки памяти: Кешируем распарсенное с помощью мягких ссылок, чтобы оно исчезло из памяти, если не используется. А если потребовалось нова, но gc снес - парсим повторно. Возникают проблемы: - Допустим мы заблаговременно подгрузили анимацию, распарсили, потом распарсенное снес сборщик мусора. Вдруг персонажу резко потребовалась эта анимация - кукла пропадет на мгновение, пока будет идти парсинг - он же асинхронный. - Сама мягкая ссылка какая-то не мягкая - пытался принудительно вызывать System.gc() - сохраненное в ссылке не исчезло ни сразу, ни в следующем кадре, ни через 10 секунд. Т.е. практически невозможно протестировать. Какие принципы кто использует для управления загрузкой и памятью для ресурсов? Должны же были хоть-какие-то выработаться за столько сделанных на флеше ММО RPG или просто объемных социалок! Последний раз редактировалось expl; 13.11.2010 в 23:51. |
Часовой пояс GMT +4, время: 16:49. |
|
« Предыдущая тема | Следующая тема » |
|
|