Почему в айфоне мало оперативной памяти
Из года в год 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), еще его называют СВАП. Это такое пространство на вашем жестком диске, куда система переносит неиспользуемые данные из оперативной памяти. Чтобы не хранить их в ОЗУ, давно запущенные приложения попросту переносятся на жесткий диск, тем самым освобождая место для еще одной вкладки 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 не нужно столь большое количество оперативной памяти. Размер - не главное, лучше вложить больше денег в софтверную часть, и правильно распределять ресурсы своего железа за счет умных алгоритмов сжатия файлов в оперативке.
Я не буду распаляться о том, как сильно iOS и Android отличаются друг от друга. Потому что для это важно важно только для понимания того, как функционируют обе платформы, но технические подробности нас мало волнуют. Для нас куда важнее то, действительно ли iOS требуется меньше оперативной памяти, чем Android, или нет.
Ну и в чем проблема?
Я привык к тому, что топовые iPhone удерживают открытыми в фоне хотя бы 5-6 последних приложений. Иногда больше, если они не сильно требовательны к ресурсам системы.
Например, переключаешься из браузера в мессенджер, в редактор и обратно – везде всё остается так, как было.
После установки iOS 11 я начал замечать неладное на iPhone 7 Plus, а iPhone X вовсе разочаровывает своей многозадачностью. Часто кажется, что её вообще нет.
Стоит закрыть любой софт, выйти в iMessage или набрать пару номеров, и все прогружается заново. Почему так? На борту десятого айфона стоит 3 гигабайта оперативки. Это больше, чем на 90% всех ранее вышедших айфонах. Представляю, как обстоят дела с девайсами на 1 ГБ RAM.
Отсюда вопрос. Какой смысл в многозадачности iOS, когда она по факту не работает? Теперь это фактически «шторка» недавно открытых программ. При том, что на одном из моих смартов Android с 2 гигабайтами памяти нет таких проблем, и минимум пять последних приложений открываются на том же месте.
Понятно, что сейчас у Apple есть дела поважнее. Как заставить народ покупать айфоны чаще. Как добавить побольше багов в iOS. Как вывести сотни миллиардов долларов из Европы в США, не заплатив ни копейки налогов.
Но медленно и верно наша iOS становится всё менее стабильной и предсказуемой. Это бесит.
Остается только узнать: вы тоже заметили проблему многозадачности, или мне показалось?
В закладки
В закладки
Вот уже вышло, как минимум, пять финальных версий iOS 13 и три беты, но Apple так и не исправила самую большую проблему операционной системы — работу оперативной памяти. Это какой-то тихий ужас.
Как выглядит нехватка оперативки в iPhone
Симптомов много – от долгого открытия приложений (система вначале освобождает память) до непредсказуемой работы многозадачности.
Именно последнее заметно пользователю чаще всего.
Пример. Вы скрываете одно приложение – нажатием кнопки Home или свайпом вверх на iPhone X – и открываете другое. Затем переходите в третье. И так далее. Позже возвращаетесь в первое приложение.
Чем больше оперативной памяти на айфоне, тем выше шанс, что приложение загрузится в том же виде, в котором было закрыто. Игра продолжится на том же месте, введенный текст останется в полях.
Если оперативной памяти не хватает, то iOS убивает ранее запущенные приложения. При повторном запуске ранее открытые данные теряются.
Почему iOS не использует столько оперативной памяти, сколько Android
Apple обеспечивает гораздо больший контроль над всей экосистемой iOS. Если вы хотите использовать iOS, то у вас есть только один вариант для телефона: iPhone. Если вы хотите создавать приложения для iOS, вы должны использовать инструменты Apple и делать это так, как это делает Apple. Apple правит с крепким кулаком.
Однако в этом есть много преимуществ.
Поскольку Apple знает точные спецификации каждого устройства, на котором когда-либо будет работать ее операционная система, они могут соответствующим образом принимать решения по проектированию. Например, в то время как Android должен поддерживать несколько типов процессоров, iOS всегда работает на аппаратном обеспечении на основе ARM.
Таким образом, iOS не нужна виртуальная машина с переводом на лету, как в Android. Все приложения компилируются в собственный код, и этот код выполняется непосредственно на оборудовании. Отсутствие необходимости в виртуальной машине означает значительно меньшее использование оперативной памяти.
Кроме того, у iOS другой подход к управлению памятью. В то время как память Android обрабатывается операционной системой, память iOS обрабатывается самими приложениями. Вместо того, чтобы позволить приложениям занимать столько оперативной памяти, сколько они хотят, и освобождать ее, когда она больше не используется, приложения iOS автоматически распределяют и освобождают память по мере необходимости.
Короче говоря, то, что у айфонов меньше оперативной памяти, не означает, что они хуже работают. У iOS другой подход к управлению памятью, потому что он не использует виртуальную машину, как Android.
Сравнение оперативной памяти на iPhone против Android
В этой статье мы рассмотрим некоторые из новейших лучших Android-устройств от нескольких производителей и сопоставим их с iPhone 8, iPhone 8 Plus и iPhone X.
Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena
Это все Android-устройства 2017 года, которые представляют лучшее из лучшего, доступного в настоящее время для потребителей смартфонов. Как вы можете видеть, эти спецификации ОЗУ являются здоровенными и обойдутся вам в копеечку. Ожидайте заплатить где-нибудь от 650 до 1000 долларов за них.
Честно говоря, только OnePlus 5T поставляется с 8 ГБ. Но моя точка зрения такова: устройства Android не получили бы столько оперативной памяти, если бы им это не нужно, верно? И если последние Android-устройства оснащены 4-8 ГБ оперативной памяти, то сколько оперативной памяти имеют iPhone?
Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena Изображение предоставлено: GSM Arena
Подожди минуту. В чем дело? Между линией Apple iPhone 2017 года мы видим только 2 ГБ на iPhone 8 начального уровня, 3 ГБ на большом iPhone 8 Plus и 3 ГБ на новейшем iPhone X. У самой высокой модели Apple меньше оперативной памяти, чем у iPhone. слабые варианты Android!
Между прочим, это не ново. IPhone 7 Plus представил 3 ГБ оперативной памяти для линейки iPhone еще в 2016 году. IPhone 7, iPhone 6s Plus и iPhone 6s работают на 2 ГБ без проблем. И iPhone 6, который может работать на iOS 11, как и остальные его преемники, имеет только 1 ГБ.
Серьезно, что происходит? Как iPhone 6 2014 года может сносно запускать последнюю версию iOS только с 1 ГБ ОЗУ, тогда как для Android требуется до 8 раз больше?
Это не дело, приложения постоянно вылетают
Мой iPhone 11 совершенно не умеет оставлять приложения активными дольше пяти секунд.
Первоначально проблема проявлялась только при открытии Камеры. Тогда казалось, что все ресурсы смартфона уходят на неё, поэтому другие программы банально выгружались и открывались повторно.
Но спустя месяц ситуация не изменилась и стала даже хуже. Тот же Safari закрывается через пару секунд после того, как я открываю Telegram или даже штатное Фото. Некоторые сайты, в лучшем случае, перезагружаются, но бывает, что и сам браузер вылетает, и приходится запускать его заново.
И ведь я такой не один. Никита Горяинов тоже жаловался на то, что у него постоянно выгружаются из памяти iPhone 11 Pro любые приложения.
Ладно, если бы этот вопрос касался только сторонних программ, разработчики которых допустили ошибки в коде. Но это случается и со штатными Фото, Safari, Калькулятором, Почтой, Камерой и Картами.
Скорее всего, имеет место программная ошибка, которую купертиновцы пока не могут решить. Кэш или пользовательские данные после обновления iOS не подхватываются программой и мешают её полноценной работе. Но почему должен страдать пользователь? Что мешало озаботиться проблемой до релиза устройства?
Что вообще за ситуация с оперативкой
Объем оперативной памяти всегда был слабым местом характеристик iPhone.
Многие фанаты Android не понимали (и не понимают), как в 2018 году смартфон может нормально работать на 1 или 2 гигабайтах «оперативки». Ведь флагманы рынка имеют по 4, 6 и даже 8 гигабайт RAM!
Apple известна осторожным подходом к управлению оперативной памятью. Благодаря автоматическим алгоритмам, владелец iPhone 6 с жалким 1 гигом оперативки может довольствоваться скоростью работы системы на уровне топовых «андроидов» с памятью по 3-6 гига.
Но я стал замечать, что с появлением iOS 11 даже топовому айфону стало не хватать памяти для нормальной работы многозадачности.
Зачем Android-устройствам так много оперативной памяти
С самого начала Android был разработан для поддержки множества различных типов процессоров, множества разных производителей и множества разных аппаратных конфигураций. Обычно программное обеспечение, написанное для одной системы, не может просто работать на другой; он должен быть «перенесен» поверх, что часто включает переписывание несовместимых битов.
Чтобы обойти это, приложения Android всегда работали на платформе Java. Java изящна из-за своей виртуальной машины: вы можете написать приложение один раз на Java, а затем виртуальная машина «переводит» этот код во время выполнения для работы на любой системе, на которой он работает. Вместо того, чтобы переписывать и перекомпилировать код самостоятельно, виртуальная машина Java обрабатывает его для вас.
Но это идет с ценой.
Виртуальная машина Java сложна и требует много оперативной памяти, не только для управления фактическими процессами самой виртуальной машины, но также для хранения исходного кода Java для любого выполняемого приложения плюс переведенный код, который фактически выполняется исполнителем. система.
С одной стороны, виртуальная машина в Android с годами улучшилась и не требует столько оперативной памяти, сколько раньше. С другой стороны, приложения для Android становятся все более и более продвинутыми — возможно, даже раздутыми — и, следовательно, требуют больше оперативной памяти для работы. ОЗУ также необходимо для фоновых процессов, которые часто встречаются в приложениях для Android.
Наконец, операционная система Android построена вокруг метода, называемого «сборка мусора». Приложениям фактически рекомендуется использовать столько оперативной памяти, сколько им нужно. Затем, время от времени, Android очищает данные в ОЗУ, которые больше не используются («мусор»), и освобождает их, позволяя другим приложениям использовать их. Этот метод, хотя и эффективен, наиболее оптимален, когда требуется много оперативной памяти, иначе система тратит слишком много времени на сбор мусора.
По этим причинам мы рекомендуем по крайней мере 4 ГБ оперативной памяти на Android, если вы заботитесь о плавной работе. Если вы этого не сделаете, то 2 ГБ должно быть минимумом.
Сколько оперативки нужно iPhone
Во что разница в потреблении оперативки выражается на практике? Ну на самом деле к повседневной эксплуатации это имеет самое непосредственное отношение. Чем больше приложений смартфон может одновременно удерживать в ОЗУ, тем лучше для него. Ведь каждый раз, когда пользователь будет запускать очередную программу, аппарат сможет не обрабатывать ее с нуля, а подтягивать из фонового режима.
Всегда считалось, что Android-смартфоны способны лучше управляться с приложениями в формовом режиме из-за больших объемов ОЗУ. Всё-таки 6, 8, 12 ГБ оперативки — это довольно весомый показатель. Но сейчас мы видим, что 6 ГБ ОЗУ в iPhone примерно эквивалентны даже не 8, а 12 ГБ ОЗУ в Android-смартфонах. Конечно, расчеты очень грубые. Но, если сравнить расходы на примере описанных выше приложений, то разница оказывается более чем двукратной. Так что даже 4 ГБ ОЗУ на iOS будет достаточно, не говоря уже о большем.
В играх ситуация оказывается несколько иной. В ряде случаев потребление оперативной памяти смартфонами на Андроид оказывается даже меньше, чем у iPhone. Однако этому есть объяснение. Во-первых, игры на iOS за редким исключением почти всегда работают на максимальных настройках. Разве что какой-то смартфон выйдет с функцией, заточенной под тот или иной игровой режим. Во-вторых, по словам экспертов, игры представляют нативный код и не учитывают никаких фреймворков и API как обычные приложения. Но на iOS игры не могут спровоцировать перерасход ОЗУ, а на Android — ещё как могут.
Что это значит? А то, что в практическом использовании меньший расход оперативки приложениями имеет реально большее значение, чем расход в играх. В конце концов, от запуска игр нам обычно быстродействия не требуется, а от софта — ещё как. Так что не пеняйте Apple на небольшой объём оперативки в iPhone. Им реально много не надо, они и так идеально работают даже со своими 4/6 ГБ. Это вам любой владелец iPhone подтвердит.
В закладки
Нет ничего печальнее, чем впустую потерянное время.
Часто пишу статьи прямо на смартфоне. На днях за это поплатился.
Полтора часа я набирал текст в окне браузера айфона. В процессе отвлёкся на входящий звонок, затем на iMessage. Вернувшись к Safari, я остолбенел.
Коротко: мне не нравится, как сейчас работает многозадачность в iOS.
Расход оперативки на iPhone и Android
Оказывается, одни и те же приложения на iOS и Android ведут себя по-разному, когда речь заходит о потреблении ресурсов, и, соответственно, расходуют оперативную память совершенно неодинаково. Вот, сравните их расход сами:
Acrobat Reader
Google Maps
Google Фото
Как видите, разница налицо. Несмотря на то что изменения в потреблении оперативной памяти происходят непропорционально, во всех случаях версия одного и того же приложения для Android потратила больше ОЗУ, чем ее аналог для iOS. Где-то разрыв был больше, где-то меньше, но в целом в 100% случаев можно сказать, что мобильная операционка Apple ведёт себя боле экономично.
Единственным исключением стали магазины приложений. App Store для стабильной работы потребовалось 235 МБ, а Google Play — 217. Но, справедливости ради отметим, что это не одно и то же приложение, хоть формально они и относятся к одному и тому же типу. Однако в оправдание App Store скажем, что он включает в себя не только каталог с приложениями, но и игровой сервис Apple Arcade.
Увидел эту проблему ТОЛЬКО в iPhone 11 и iPhone 11 Pro
Apple не смогла оптимизировать работоспособность iOS 13 на iPhone 11.
Почему я твёрдо уверен, что проблема именно в последних айфонах? А вы попробуйте поработать на других устройствах. На том же четырехлетнем iPhone 6s все работает нормально, к моему прошлому iPhone XS Max также не было претензий.
Даже до релиза операционной системы при работе с бета-версиями не было постоянных выгрузок из памяти. А количество оперативки, на секунду, одинаковое у iPhone XS Max и iPhone 11 — по 4 ГБ.
Разборка iFixit показала, что в новых айфонах стоит та же самая память от прошлогодних гаджетов. Тогда почему она работает не так, как задумано?
Если думаете, что переустановка «чистой» iOS 13 спасает — вы ошибаетесь. Я дважды накатывал операционную систему, а результат остаётся тем же. Что с iOS 13.1.3, что с iOS 13.2 beta 3 айфон продолжает выгружать программы из памяти.
Встречались с подобной проблемой на других устройствах? Расскажите о ваших кейсах использования в комментариях. Я уверен, что найдутся люди, которых тоже затронул этот «косяк».
В закладки
Война между iOS и Android держится до сих пор. Очевидно, что есть веские причины падать по обе стороны забора, но это не мешает людям (включая нас) бесконечно сравнивать два, чтобы увидеть, какой из них лучше для наших нужд.
Мы уже изучили вопросы о том, какая мобильная операционная система более безопасна и почему приложения для iOS обычно лучше, чем приложения для Android. Но вот что вы, возможно, не заметили: устройства iOS часто имеют половину оперативной памяти (или меньше) устройств Android . Почему это?
Читайте также: