Найти тему
Техно DASh

Секрет оперативной памяти у iPhone. Как устроенно и почему так мало.

Сегодня поговорим оперативной памяти в устройствах от Apple и ответим почему так и почему другие производители ставят больше.

Как вы наверное заметили на дворе у нас 2020 год а производители все так же гоняться за большими цифрами. Оперативная память не исключение. Сейчас все топовые производители взяли за основу пихать даже в среднебюджетный сегмент 8 Гб оперативной памяти, но когда речь идет о флагманах цифры растут и колебаться от 12 до 16. Вроде все логично. Чем больше оперативной памяти, тем больше процессов может оставаться в фоне. Но не у Apple. Линейка iPhone 11 показывает следующие результаты:

  • iPhone 11 - 4 Гб
  • iPhone 11 Pro - 4 Гб
  • iPhone 11 Pro Max - 6 Гб

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

Немного теории

-2

Оперативная память (англ. Random Access Memory, RAM, память с произвольным доступом) или оперативное запоминающее устройство (ОЗУ) — энергозависимая часть системы памяти, в которой во время работы хранится выполняемый машинный код (программы), а также входные, выходные и промежуточные данные, обрабатываемые процессором.

Оперативной памяти никогда не бывает много. Сразу после перезагрузки Android телефона часто занято около 2 Гб RAM. Это системные приложения, оболочка, Google сервисы, сервисы распознавания лица, сканер отпечатков пальцев, бэкапы, сервис контактов и многое другое

К примеру при одновременном запуске iPhone 11 Pro, OnePlus 8 Pro и Pixel 4 то у всех телефонов занято по 2 Гб оперативной памяти. Но как же быть если у iPhone осталось только 2 Гб а у OnePlus 8 Pro целых 10 Гб?

Кто-то ответи что магия Apple в том что они держат связь с разработчиками и это позволяет оптимизировать приложения для минимизации потребления ресурсов. Не верно! Вот наглядный пример:

-3

Как видим в исключительных случаях Android потребляет даже меньше, но по итогу все почти одинаково.

Оптимизация.

Все просто. Вся магия кроется в оптимизации самой iOS и ёё взаимодействию с оперативной памятью. Если брать в общем то и в Android и в iOS планировщик памяти работает одинаково. Принцип его работы до безобразия простой. При открытии приложения и нехватке оперативной памяти, планировщик принимает решение забрать её (оперативную память) у другого открытого приложение, тем самым его закрыть и отдать память на новую задачу. Но что делать если оба приложения нужны работоспособными?

И Android и iOS умеют сжимать приложения которые открыты в оперативной памяти освобождаю при нужде до 50% памяти.

Но Apple придумала свой подход и решение этой проблемы. Они решили делить оперативную память на отдельные участки, блоки по 16 Кб. В свою очередь эти блоки можно поделить на чистые и грязные.

Чистая оперативная память - это та часть оперативной памяти которая не нужна приложению для работы в фоновом режим и без которой приложения можно оставить в общей оперативной памяти.

Грязная оперативная память - часть данных без которого приложение не может функционировать в фоном режиме и содержит критически важные компоненты приложения.

Сам процес освобождения оперативной памяти в iOS имеет такую последовательность:

1. Планировщик делит оперативную память приложения на чистую и грязную.

2. После этого чистую память он выгружает из системы оставляя только грязную.

3. После того как большая часть выгрузилась он сжимает грязную память до минимального предела.

Если брать в общем и на примере инстаграм то таким путем планировщик памяти на iOS из 300 Мб сжимает приложение в фоне до 20 Мб. Круто не правда ли?

-4

Производители Android устройств решили не заморачиваться а просто увеличить общий объем оперативной памяти. Проблема в том чо оперативная память энергозатратная и расходует аккумулятор девайся.