Блогер выяснил, что приложениям на Android нужно больше оперативной памяти, чем на iOS

Блогер с YouTube-канала Gary Explain провёл эксперимент: он взял несколько одинаковых приложений для iOS и Android и сравнил, сколько оперативной памяти потребляет каждая программа на обеих платформах.

Спойлер: Android-версии приложений потребляют почти в два-три раза больше оперативной памяти, чем на iOS. Например, Acrobat Reader с открытым PDF-файлом на iOS занимает 117 Мбайт ОЗУ, а на Android — целых 390 Мбайт.

Booking.com на iOS требуется всего 73 Мбайт, а на Android — 330 Мбайт. Аналогичная ситуация с другими приложениями из списка:

wp-image-1117097wp-image-1117096

С играми дела обстоят иначе. Все они занимают примерно одинаковое количество оперативной памяти, но есть исключения.

Например, Shadowgun Legends во время боя «съедает» 1130 Мбайт ОЗУ на iOS, а на Android — 899 Мбайт. Brawl Stars: 572 Мбайт на iOS и 507 Мбайт на Android.

Но почему так происходит? Блогер проконсультировался с разработчиками и всё доходчиво объяснил.

У платформ разные способы программирования


Swift — это вообще язык программирования, созданный самой Apple.

Многие считают, что дело в оптимизации системы, которую Apple смогла освоить, а Google нет. Но по факту, всё упирается в методы создания приложений.

На iOS приложения пишут при помощи объектно-ориентированных языков программирования: Objective-C и Swift. Компилируются программы в нативный код. То есть, код, который содержит инструкции, исполняемые непосредственно самим процессором (в данном случае Apple A или Apple M).

Так исторически сложилось, что Android-смартфоны представляют собой буквально россыпь разных типов платформ и нативный код для каждой из них писать и компилировать слишком затратно. Разработчики просто не могут физически этого позволить, потому что новые устройства выходят каждый день.

И для каждого пришлось бы делать отдельную версию приложения.

Для Android нужна универсальность. За неё приходится платить производительностью


Android-смартфонов на рынке сотни, если не тысячи.

В Google это понимали изначально, ведь Android — свободная операционная система. Поэтому официальным и стандартным языком программирования был выбран Java. Сегодня ещё активно используется Kotlin.

Разница в том, что при компиляции таких приложений они преобразуются в байт-код. Его исполнением занимается уже не процессор, а среда виртуализации, встроенная в систему (например,  Java Virtual Machine). Как раз наличие этого промежуточного этапа и требует дополнительных ресурсов.

Поэтому приложениям на Android действительно требуется больше оперативной памяти, чем на iOS. Потому что iPhone и iPad исполняют нативный код без дополнительных инструментов.

А почему с играми не так?

Потому что в отличие от приложений, игры компилируются в нативный код, будь то Unreal Engine или Unity. Поэтому различий между ними не так много. Они потребляют почти одинаково много памяти, что на iOS, что на Android.

И практической разницы в работе между Android и iOS не так много, потому что 6 Гбайт ОЗУ в iPhone 13 Pro сопоставимы с 8 Гбайт в Samsung Galaxy S21.

©  iphones.ru