Правильная загрузка ресурсов в Unity #1. Ограничения RAM ОС для Мобильных приложений.

В последнее время разработчики меньше уделяют времени на оптимизацию приложений по потреблению оперативной памяти. 10 или 20 ГБ RAM на борту придают увереность, что забота о загрузке/выгрузке ресурсов в память осталось в прошлом, и все эти рассказы дидов, о том, как они ужимали текустуры и звук в 12 килобайт можно заносить в анналы истории. Наконец-то разработчик может сконцентрироваться на реализации идеи, и не тратить драг время на оптимизацию!

В данной статье разберем, насколько сторого мобильные ОС относятся к “сильно жирущим” приложениям.

Большее разрешение экрана, увеличившейся аппетит игроков к графике, некомпетентные менеджеры, с вечно просранными сроками,  всё это приводит к тому, что проблема нехватки оперативной памяти всегда остается острой.

К тому же , операционки android и ios жестко наказывают распоясовшиеся приложения, и убивают их, если те требуют слишком много ресурсов.

Ниже, таблицы 1 и 2 показывают несколько популярных устройств и количество RAM, которое операционная система позволяет использовать одной программе.

Мобильное устройство ОС Всего RAM в устройстве. MB Max памяти, выделено для приложения. при привышении этого порога ОС закрывает программу. MB
 iPad2, iPadMini, iPod5,
iPhone4s
 >IOS7  512  275
 iPad3, iPhone5, iPhone5s, iPhone6, iPhone6s+  IOS  1024  645
 iPad4  >iOS7  1024  585
iPadMini retina, iPad AIR  >iOS7 1024 697
iPad Air2, iPhone6s, iPhone6 >iOS8 2048 1195

Таблица 1. IOS Семейство

Устройство ОС Разрешение экрана Всего RAM в устройстве. MB Max памяти, выделено для приложения. при привышении этого порога ОС закрывает программу. MB
Acer A5 Android4 1280×800 (150DPI) mdpi 1024 256
Samsung Note N7000 4.1.2 1280×800 (285dpi) hdpi 1024 256
Samsung Galaxy S3 4.3 1280×720 (306dpi) xhdpi 1024 256
Samsung Galaxy S4 4.4 1920×1080 (441dpi) xxhdpi 1024 256
nexus 4,5 4.4 xhdpi, xxhdpi 2048 512
Tab 3 10.1 4.2 mdpi 1024 256
Nexus 10 4.4 2048 512
Таблица 2. Android Семейство

Есть определенная зависимость между версией OS Android и количества RAM в устройстве. К примеру, можно быть уверенным, что все устройства версии >4.3 обладают оперативной памятью >= 1GB [см]

Конечно, Heap size для android устройств зависит от настроек производителя этого устройства. В таблице 2 приведенны наиболее попялрные устройства.

По таблицам можно определить соотношение размера RAM памяти и выделенной для приложения Heap в памяти.

OS Отношение RAM / Heap Приложение может занимать в памяти % +- % (стандартное отклонение)
iOS 1.7 60 +-4
Android 4 25 0

Пример.

Для iPhone c RAM 4096, максимальный размер приложения в памяти должен занимать не более 2410 MB

Для iPhone c RAM 4096, максимальный размер приложения в памяти должен занимать не более 1024 MB

Sources: 1, 2

Даже простенькая игра-платформер может “съедать” 150-1000 мегабайт RAM, поэтому очень важно не забывать о выгрузке неиспользуемых текстур, анимаций и звуков. Unity предлагает много способова по управлению ресурсами. В следующей статье поговорим о способах загрузки и удаления диманических ресурсов в Unity приложениях.

Leave a Reply

Your email address will not be published. Required fields are marked *