- Argument600
- Официальный сайт
- Сколько ОЗУ нужно смартфону? и почему Айфоны не лагают
- Видеоверсия:
- Почитать:
- Оперативная память смартфона
- Оперативная память в iPhone – почему не лагает?
- Почему у iPhone меньше оперативной памяти, чем у Android смартфонов
- Почему iPhone хватает 4 ГБ ОЗУ, а Android — нет?
Argument600
Официальный сайт
- VK
- YouTube
Сколько ОЗУ нужно смартфону? и почему Айфоны не лагают
Как обычно: сначала видео-версия, а для любителей почитать ниже будет текстовая версия.
Видеоверсия:
“Зачем тебе 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 – нет, то надо помнить, что айфон сделан таким образом, чтобы вы не замечали эту нехватку памяти. Тогда как бюджетные Андроед устройства не могут похвастать ни высокоскоростными флеш-накопителями, ни процессорной однопоточной мощностью, дабы быстро оперировать со свапом. Вот и вся «магия». Оперативки не хватает и тем, и тем. Просто, в случае с айфоном, вы ее не замечаете.
Источник
Почему у iPhone меньше оперативной памяти, чем у Android смартфонов
В iPhone 6 оперативной памяти 1 Гб, столько же имели памяти iPhone 5 и 5S. Почему так мало оперативной памяти у iPhone? Когда у смартфонов-флагманов на Android оперативной памяти 3 Гб и больше. Заметьте iOS устройства всегда славилась плавностью анимации и быстродействием, а Android шли к этому долгие годы. Все дело на программной платформе, на которой построены ОС, при разработке использовались разные языки программирования. Приложения на Android используют Java. Алгоритм работы с оперативной памятью в Android заключается в следующем: занятая ОЗУ освобождается с помощью процесса, который называется сборщик мусора. Этот процесс удаляет объекты, которые уже не нужны приложениям, тем самым освобождая память. Поэтому для эффективной работы Android нужно в 4-8 раз больше памяти, чем на самом деле использует смартфон. Когда вся оперативная память начинает использоваться, устройство начинает работать медленнее. С ростом качества и веса приложений, возрастает их потребность в оперативной памяти, поэтому такое активное наращивание железа происходит на Android смартфонах, есть ограничение сверху, чем больше ОЗУ, тем больше нагрузка на батарею устройства.
Приложения для iOS написаны на языке Objective-C, где работа с оперативной памятью происходит по-другому, программы удаляют файлы из оперативной памяти сразу после использования. В iOS не использует сборщик мусора, тем самым не становясь медленнее во время нагрузок на ОЗУ. Поэтому iPhone обходятся гораздо меньшим количеством оперативной памяти.
Источник
Почему iPhone хватает 4 ГБ ОЗУ, а Android — нет?
Из года в год Android-производители форсируют железную часть смартфонов: 108 МП, 8к-видеосъемка 12гб оперативной памяти… Но подождите, у iPhone всего 4 ГБ ОЗУ. И это не мешает ему работать на уровне или даже быстрее своих конкурентов! И как же удалось компании Apple добиться такого результата? Обо всём этом в сегодняшнем ролике.
Для начала немного теории. Что такое оперативная память и для чего она нужна в смартфоне? Если говорить простым языком, то это память, в которой хранятся все запущенные приложения, их данные, и сама операционная система!
Естественно, чем больше у вашего девайса оперативной памяти, тем комфортнее и приятнее с ним взаимодействовать.
Большинство пользователей iPhone даже не знают сколько оперативной памяти у них в смартфоне. Это обусловлено тем, что пользователей устраивает работа многозадачности в их смартфонах, они просто пользуются и получают удовольствие от плавности и скорости работы. Так как же Apple все же удается хорошо работать с 4 ГБ оперативной памяти?
Может быть дело в системе? На самом деле чудес не бывает, Android и iOS требуется примерно одинаково-большое количество ОЗУ. К примеру, пару лет назад, один зарубежный канал Android Authority провёл детальное сравнение. Автор взял два смартфона на iOS — это iPhone 7 и на Android — Nexus 5х, с одинаковым количеством оперативки – 2 ГБ. iPhone 7 c момента запуска имеет МЕНЬШЕ свободной оперативной памяти чем смартфон на Android: около 750 МБ против 1,2 ГБ у Nexus. Но это до того момента пока вы не запустите какое-либо из ваших приложений.
Мы повторили тест на iPhone 11 и Pixel 3 с Pixel 4. Теперь получается, что цифры сопоставимы: в iPhone задействовано около 2 ГБ оперативки, а Pixel использует около 2,4 ГБ.
Окей, может быть дело в том, что приложения на Android занимают больше места в оперативке? Ведь Apple любит разработчиков, а они отвечают им взаимностью. Но тоже нет: во многих случаях размер занимаемого места в оперативной памяти на iOS и Android примерно равны, но в некоторых случаях приложения на iOS занимают почти в 1.5-2 раза меньше оперативной памяти! Скорее всего это связано с более оптимизированным исполняемым кодом приложения, ведь языки написания приложений очень разные.
При подсчетах, Android-приложения в совокупности занимают всего на 6% больше места в оперативной памяти.
Но это только начало, как говорят многие пользователи яблочной продукции «Оптимизация Решает!», как оказалось, в этом есть доля правды!
Оба аппарата работают с приложениями молниеносно, с андроидом все понятно, у него все хранится в ОЗУ, но как справляется iPhone с его жалкими 4 гигабайтами? Вся магия кроется как раз в работе iOS с оперативной памятью. Базово и iPhone, и Android имеют примерно одинаковый планировщик работы с памятью. Если в момент запуска нового приложения, у смартфона попросту нет свободной оперативной памяти, он выкинет одно из ранее запущенных и откроет то, которое тебе нужно в данный момент!
В мире компьютеров операционная система Windows имеет файл подкачки (pagefile.sys), еще его называют СВОП (термин пишется по-английски — swap). Это такое пространство на вашем жестком диске, куда система переносит неиспользуемые данные из оперативной памяти. Чтобы не хранить их в ОЗУ, давно запущенные приложения попросту переносятся на жесткий диск, тем самым освобождая место для еще одной вкладки Chrome. ПК-бояре понимают о чем я.
На смартфонах все немного сложнее, многие смартфоны до сих пор имеют не самые быстрые флеш-накопители в постоянной памяти. К этому прибавляем то, что флеш-память имеет сравнительно небольшой ресурс чтения и записи, поэтому производители смартфонов прибегли к иной реализации!
Представим такую ситуацию, у нас 4Гб оперативной памяти, открыто 5 приложений, память вся уже заполнена, как же запустить еще одно приложение и при этом не закрывать одно из пяти, то есть те которые уже открыты. Всё дело в том что и у iOS, и у Android тоже есть так называемый Сжатый СВАП – с помощью сжатия, которое похоже на то, что делает архиватор. Приложение сжимается внутри оперативной памяти, система выбирает самые массивные приложения, будь то одна большая или две мелких игры, происходит сжатие, тем самым освобождается до 50% больше места, и теперь можно запустить еще одно приложение.
Такая схема работает и на iPhone, и на Android, но Apple пошли куда дальше. Они придумали, как делить пространство на отдельные страницы — блоки размером 16 КБ, которые вмещают в себя любую информацию. Такую страницу можно пометить как грязную (dirty) или чистую (clean). Чистая — память, которая больше не используется (то есть никакие объекты больше не ссылаются на неё, и её можно спокойно выгрузить). В дальнейшем она может быть загружена с диска («page out»), такая память содержит фреймворки, исполняемый код и файлы только для чтения.
К примеру, в таких страницах могут быть данные текстур игры, которые не используются приложением даже после повторного запуска из фонового режима, также в иных приложениях это могут быть разные AR-тикеры, маски и прочие блоки кода, которые не использует приложение пока пользователь повторно не запустит программу из фона.
Грязная — память, которая ещё используется в приложении, выгрузить её невозможно, поэтому при переходе приложения в фон чистая просто выгружается, а грязная сжимается по двум методам сжатия:
- Сжатие буфера — использует одношаговый метод сжатия файлов, этот метод используется для сжатия мелких файлов до 8 МБ.
- Сжатие потока — использует несколько шагов для сжатия файлов, в том числе и повторное сжатие ранее сжатых файлов, что делает его идеальным для сжатия больших файлов.
Допустим у нас есть приложение Instagram, оно занимает 300 МБ в оперативной памяти, первым этапом будет очистка чистой памяти, которая была в запасе у приложения и больше не понадобится. Размер в ОЗУ уменьшается примерно до 170 МБ. Далее операционная система прибегнет к одному из двух методов сжатия грязной памяти. Благодаря продуманному алгоритму сжатия, грязная память из 170 мегабайт сжимается до внушительно маленького размера — менее 10 МБ!
В свою очередь, производители смартфонов на базе Android вышли из ситуации более простым решением, увеличить размер оперативной памяти чтобы меньше использовать сжатый свап.
Итак, время теста. Мы взяли устройства разных поколений — iPhone 11 и Pixel 3 — зато оба с 4 Гб. Посмотрим, что произойдет.
Pixel держит в памяти три игры. Начал выгружать их из памяти при запуске четвёртой.
iPhone полноценно держит шесть игр. Начал потихоньку выгружать на седьмой, но не все. Все начали вылетать только на восьмой игре.
И здесь мы подходим к кульминации вопроса, нужно понять, за счет чего iPhone так быстро производит сжатие данных в оперативной памяти? А дело все вот в чем. Чтобы быстро провернуть данную операцию, потребуется мощный процессор с высокой производительностью Больших Ядер!
Если мы посмотрим на скриншоты из бенчмарка GeekBench 5, то увидим превосходство А13 Bionic перед Snapdragon 865 в 1.5 раза, а ведь А14 Bionic еще даже не вышел! Именно производительность на один поток данных всегда было главным козырем процессоров от компании Apple! Большой проблемой Android-смартфонов является то, что они все построены на очень разном железе, производители вынуждены оптимизировать систему для более слабых девайсов, у которых попросту нету столь внушительной мощности процессора или быстрой памяти. Хотя подвижки со стороны компании Qualcomm уже есть.
Так еще с презентации Snapdragon 855 было замечено, что компания сделала упор на одно высокопроизводительное ядро (prime core), которое имеет повышенную частоту и размер кэш-памяти, но этого все равно пока мало, чтобы догнать чипы Apple.
Думаю, теперь многим стало понятно, почему iPhone не нужно столь большое количество оперативной памяти. Размер — не главное, лучше вложить больше денег в софтверную часть, и правильно распределять ресурсы своего железа за счет умных алгоритмов сжатия файлов в оперативке.
Источник