Разрушаем мифы: сколько нужно памяти смартфону?

В Telegram-канале Content Review уже несколько месяцев успешно работает рубрика #marketing_bullshit. В ней мы рассказываем о мифах, настойчиво культивируемых топовыми брендами. Злоупотребляют доверием не только операторы. Крупные бренды, производящие электронику, тоже любят вводить в заблуждение пользователей своей продукции и делают это, как правило, с завидной ловкостью.

Из-за новостей, связанных с ошибками в ПО Apple, активизировались многочисленные эксперты и аналитики, которые рассказывают всякое о разработке ПО, оптимизации и других интересных вещах. Оказывается, что многие стереотипы удивительно живучи, хотя им самое место в нашей рубрике #marketing_bullshit.

Снизилось ли на самом деле качество ПО Apple и что происходит в реальности, мы, возможно, поговорим в другой раз.

А сегодня немного расскажем об оперативной памяти в смартфонах. Тема интересная и о ней имеет смысл говорить подробно, но это требует изложения довольно большого объема информации и не попадает под формат постов в Telegram.

Но по кое-каким мифам хотелось бы пройтись прямо тут. Слишком уж велико бурление.

Общеизвестно, что в смартфонах Apple устанавливается относительно скромное количество оперативной памяти (она же ОЗУ, она же RAM). К примеру, даже в iPhone X стоит 3 Гб оперативки, в то время как Android флагманы оснащаются уже 6, а то и 8 Гб.

Эксперты уверены, что это потому, что софт яблочной компании так хорошо оптимизирован, что и такого объема памяти более чем достаточно. В то время как в лагере аналитиков утверждают, что все дело исключительно в патологической жадности компании из Купертино (которую скоро ждет погибель; но это не точно).

Действительно, между iOS и Android есть существенные различия в реализации работы с ОЗУ. Но в том, что касается количества потребляемой памяти заметной разницы между системами нет. Интересующиеся могут почитать относительно небольшой (15 тысяч знаков) текст Android Authority. Кому лень читать: у них получилось, что Android потребляет всего на 6% больше ОЗУ.

Но пользовательский опыт показывает, что iPhone менее агрессивно выгружает приложения при сравнимом объеме памяти. Почему?

На самом деле оперативной памяти не хватает всем и всегда. В настольных системах нехватка ОЗУ часто компенсируется так называемым файлом подкачки — грубо говоря, то, что не влезло в оперативку сбрасывается на диск. Но для мобильных устройств с флеш-памятью этот вариант не очень подходит. Ограниченное количество циклов перезаписи очень быстро приведет к деградации флеша, да и его скорость на запись, как правило, оставляет желать лучшего.

Android использует технологию zram, т. е. если очень упрощенно — сжимает некоторую часть данных прямо в оперативной памяти, а если уж и это не помогает, то приложение останавливается и выгружается. Кстати, чаще всего, именно эта упаковка/распаковка данных вызывает неприятные кратковременные фризы, которые так не любят пользователи.

Подход Apple более изощрённый и уходит корнями во времена, когда в iOS не было полноценной многозадачности и предполагалось что активным в конкретный момент времени может быть только одно приложение. В iOS тоже есть компрессия данных в ОЗУ, но при этом есть возможность выборочно выгружать из памяти ресурсы фоновых приложений, которые могут быть быстро считаны с флеш-накопителя, например, картинки и тому подобное. Кроме того, скрыть от пользователя восстановление данных в памяти позволяют различные трюки с анимацией. Ну и, конечно же, быстрый процессор и скоростная флеш-память.

Неужели это все от жадности — лишь бы не ставить больше памяти?

Конечно же, чипы ОЗУ не бесплатны, но причина другая. Дело в том, что оперативная память не может быть обесточена, как например, вычислительные ядра процессора. Как только вы обесточите память, то все ее содержимое пропадёт. Поэтому в режиме ожидания на ОЗУ может приходиться до 30% потребления энергии смартфоном и именно энергосбережение является главной причиной экономии оперативной памяти в топовых мобильных устройствах, а не ее стоимость как компонента.

Но прогресс не стоит на месте, и требования к многозадачности в мобильных операционных системах тоже меняются. В iOS появился многооконный режим, и одновременно с этим пользователи заметили, что потребление памяти выросло, а приложения стали чаще вылетать и перегружаться. И это не совпадение.