Как обычно: сначала видео-версия, а для любителей почитать ниже будет текстовая версия.
Видеоверсия:
“Зачем тебе 4 Гб ОЗУ на смартфоне ко-ко-ко. Это же не компьютер!!!11” – такие опусы я постоянно читаю в комментах под своими видео. Видео сделано специально для того, чтобы объяснить почему я выступаю за наращивание объема RAM на смартфонах. Ну хорошо, хотя бы пусть сделают быстрый свап (swap), но это даже менее реально, чем увидеть 8 Гбайт ОЗУ на новом смартфоне.
Почитать:
Да, видео немного упрощено, я не сказал, что приложения могут так же делиться, как сама ОС Android, но это еще сильнее бы раздуло мою любительскую статью.
Зачем нам 2-4-8 Гбайт оперы в смартфонах? Это же всего лишь телефон! Для того чтобы ответить на этот вопрос, давайте определимся с понятиями. Во-первых, современный смартфон — это полнофункциональный мобильный ПК на базе ОС на основе ядра Linux. Во-вторых, большинство пользователей уже сейчас используют смартфоны и планшеты более интенсивно чем настольный ПК или Ноутбук. Я понимаю, что есть геймеры, монтажеры, аналитики и другие профессии, где без хорошего ПК с удобным крупным экраном не обойтись. Да чего уж там, я сам работаю на ПК, но! Если взглянуть на количество используемых ежедневно программ на ПК и на смартфоне, внезапно выяснится, что смартфон получает большую нагрузку, чем ПК! Для многих, это оказывается сюрпризом, но вы можете посчитать это сами.
Вот сходу те приложения, которые я использую на своём ПК и смартфоне ежедневно в течение недели. Из списка я убрал такие программы как Проводник, антивирус, калькулятор и прочие фоновые вещи, вроде тех же же Google Play services. Иначе этот список раздуло бы еще больше. Даже просто глядя на этот список, можно понять, что установка большого объема оперативки на смартфон вполне обоснована. Но если я вас не убедил, то давайте посмотрим, какие задачи пользователи возлагают на ПК и на смартфоны.
Оперативная память смартфона
Если на стационарном компьютере мы в основном работаем и играем, то для смартфона основными задачами являются потребление контента (я имею в виду серфинг, ютуб, веб-сервисы, кубчик, онлайн-журналы итд), связь конечно же и навигация, которая в смартфонах реализована неприлично лучше, чем в навигаторах. Более того, смартфон наделен значительно более широкими возможностями, чем компьютер, отсюда и возникает такая ситуация, что в смартфоне у людей установлено больше активных программ, чем на ПК или даже ноутбуке.
Но сколько же тогда нам памяти нужно в смартфоне? На самом деле – чем больше, тем лучше. Звучит очень попсово, но я сейчас объясню, в чем тут подвох.
Вот скриншоты трех смартфонов. Все они только-только распакованы и не имеют только стандартно установленные приложения и «чистый» Android. Да, у первого смартфона был предустановлен Яндекс.Браузер, а у третьего утилита для обновления, но они погоды нам не сделают. Казалось бы – все логично, чем меньше оперативной памяти в смартфоне, тем меньше свободной памяти нам доступно. Но, вы ничего не замечаете?
В каждом из трех случаев система Android занимает разный объем в оперативке. Но почему так? Ведь система то одна! Ладно там, TouchWiz какой-нибудь 3 гига RAM может занимать со своими сервисами, к этому мы уже привыкли, но тут то в чем дело?
Как и любая ОС, Android состоит из множества процессов, служб (или демонов, как тут принято), модулей и так далее. То есть это составная структура. Если наш девайс не обладает достаточным количеством памяти, то мы выборочно выкидываем из памяти разные функции. Это не значит, что они не будут работать, просто подгружаться они будут медленнее, так как складироваться будут на флеш-памяти. Например, мы можем выкинуть из оперативки часть интерфейса, и при открытии меню, оно подгрузится не сразу. На бюджетных моделях такое встречается очень часто, например, звенит рингтон, а интерфейс приложения еще не отрисовался, и невозможно ответить на звонок.
С другой стороны, мы наоборот, можем вывалить все сервисы и системные приложения из свапа в оперативку, и тогда наш «голый» Android разрастется до гигабайта и даже двух, но зато любое загруженное туда приложение будет откликаться настолько быстро, насколько позволит процессор. Правда, и это не всегда возможно. Почему? Да все просто. Достаточно посмотреть, сколько оперативки в пике могут потреблять приложения. В последних версиях Android это делается очень просто.
Чтобы вы меня не обвиняли в беспредметной риторике, давайте возьмем конкретный пример, с конкретным смартфоном. Раз уж мы начали с LG G4, то давайте на его примере посмотрим сколько же памяти запрашивали приложения и вычислим сколько памяти нам хотелось бы иметь «в идеале», то есть чтобы вообще не приходилось прибегать к помощи флеш-памяти.
Вот реальный график пикового потребления оперативной памяти системными приложениями. Да, LG G4 – не лучший пример, у него действительно тяжелая оболочка с фирменными сервисами итд, но тем даже показательнее. Для максимально плавной работы без запущенных сторонних приложений этому девайсу требуется около 2600 Мбайт оперативки! Конечно, я тут немного сгущаю краски, так как это не среднее потребление памяти, а пиковое. Но в том то и соль, чтобы смартфон не лез к флеш-памяти даже при пиковых нагрузках.
Если же представить работу с браузером или приложением Вконтакте и Инстаграмом, то мы уже получим чуть ли не 4 Гбайта занимаемого пространства в RAM. Дело в том, что все эти приложения соцсетей очень быстро съедают доступный объем оперативки для плавного отображения бесконечной ленты новостей, которая загружается именно в ОЗУ, дабы по свайпу быстро отобразиться вновь. С браузером все вообще до боли знакомо. Да, по моим замерам на данном смартфоне он потреблял до 1100 Мбайт RAM. А чему тут удивляться?
Те же браузеры на ПК с тем же функционалом потребляют столько же памяти при интенсивном браузинге. Ничего необычного в этом нет! Но за это мы и любим наши пекарни – вставил 32 Гбайта, и открыв 5-10-20 программ ты всегда знаешь, что оно откроется максимально быстро, а не будет подтягиваться из медленной флеш-памяти. Почему же мы должны отказывать себе в добром объеме ОЗУ в смартфоне?
Оперативная память в iPhone – почему не лагает?
И тут мы плавно переходим к важнейшему вопросу из зала: мол, в смартфонах Apple был всего один гигабайт и работало все отлично! В чем тут дело?! Ну что ж, давайте обо всем по порядку.
Допустим, нам надо запустить два банальных приложения: chrome и инстаграм. Напомню, что первый может потреблять до 1.5 Гбайта оперативки, а второй около 500 мбайт при активном использовании. Тут надо понимать: независимо от ОС такие программы как браузер, не могут потреблять радикально разное количество память. Особенно если это одно и тоже приложение! Для неверующих советую запустить любой популярный браузерный бенчмарк и сопоставить его с результатами кроссплатформенных бенчмарков, но об этом как-нибудь отдельно. Разница есть, но она настолько мала, что ею можно пренебречь. Так в чем же дело тогда, спросите вы? Ну смотрим, при запуске этих приложений, у нас нет выбора – надо использовать свап.
“Магической” оптимизации Apple не существует
Оба они в оперативку не залезут. Ок, допустим, у нас активен Инстаграм, значит хром с несколькими вкладками мы свапаем. Повторюсь, такая ситуация будет неизбежна, как для iPhone 6, так и для бюджетника на Андроид за 75 долларов. Для того чтобы понять, почему же iPhone 6 все же работает быстрее, надо понять, за счет чего работает так называемая «магическая оптимизация apple”. Эти ребята поняли, что нет смысла биться за тупое наращивание объема ОЗУ, так как для радикального изменения ситуации в смартфоне должно быть от 8 Гбайт оперативки, как в современном нормальном ПК. Это слишком дорого. Поэтому, они пошли другим путем. Раз нам надо перебросить массив данных из свапа в оперативку, то не проще ли сделать флеш-память максимально быстрой?
И они так и сделали! Да, у iPhone 6 было всего один гигабайт оперативки, но у них был и самый быстрый массив флеш-памяти.
Скорость работы флеш-накопителя даже старого iPhone 6 значительно превосходит не то что бюджетники своего времени, но и современные недорогие модели с 1 Гбайтом ОЗУ. Тут даже спорить не о чем!
Это доминирование продолжается и по сей день, неудивительно, что Apple может обойтись 2-3 Гбайтами RAM
Но для того, чтобы пользователь практически не смог отличить восстановление приложения из свапа от полноценной загрузки с оперативной памяти нужно было еще кое-что. Дело в том, что при выгрузке данных с флеш-памяти, используется один поток вычислений. Это знает любой монтажер, который сталкивался с нехваткой оперативной памяти. Прежде чем приложение, даже поддерживающее многопоточность, начнет загружаться, его данные надо выгрузить из свапа. Эта загрузка происходит в один поток. Понятно, на что я намекаю?
Производительность на 1 поток – всегда была сильная сторона айфонов.
Даже старый айфон 6 не оставляет шансов современным бюджетникам, a новая модель iPhone 7 уничтожает по этому показателю и флагманские устройства.
В итоге, когда мы говорим про то, почему айфону хватает одного-двух гигабайт оперативки, а современным бюджетникам и смартфонам среднего класса в стане Android – нет, то надо помнить, что айфон сделан таким образом, чтобы вы не замечали эту нехватку памяти. Тогда как бюджетные Андроед устройства не могут похвастать ни высокоскоростными флеш-накопителями, ни процессорной однопоточной мощностью, дабы быстро оперировать со свапом. Вот и вся «магия». Оперативки не хватает и тем, и тем. Просто, в случае с айфоном, вы ее не замечаете.