Наверх
27 комментариев 18/07/2016

Скольку ОЗУ нужно Android смартфону?

Скольку ОЗУ нужно Android смартфону?

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

Несколькими неделями ранее появилась информация о двух смартфонах от китайских компаний-производителей, LeEco и Oppo, с восемью гигабайтами оперативной памяти на борту. В прошлый раз мы рассмотрели вопрос надобности многоядерности, а Сергей написал статью-размышление, тему которой я разберу более подробно.

Предыстория

Быстродействие и плавность работы смартфона зависят от нескольких составляющих, наиболее важные из которых – это процессор, видеоускоритель, ОС и ее оптимизация, а также оперативная память. Именно о последней сегодня и пойдет речь.

Оперативная память в смартфоне, как и в компьютере, буферная, иначе говоря, используется для непродолжительного хранения данных, обеспечивая функционирование программного обеспечения. В отличие от постоянной – энергозависима и более быстрая. Является важной составляющей аппаратной экосистемы, работая в паре с другими компонентами, расположенными на SoC. Оперативную память можно по праву считать следующим после процессора залогом быстродействия. Именно этот фактор и является основной причиной их тесного взаимодействия.

Обычно обмен данными между ЦП и ОЗУ происходит при участии кэш-памяти. Кэш-память является неким посредником между этими компонентами. Подкачивая из оперативки в процессор данные и выстраивая приоритетность, она возвращает их обратно ОЗУ, но уже в модифицированном виде. В действительности все не так уж сложно.

Оперативную память можно разбить на несколько секций: системная, пользовательская и доступная.

  • Системная – основа ОС. Сюда относят системное программное обеспечение, включая служебные модули и предустановленные производителем дополнения, а также модификацию системы (фирменный интерфейс). Кстати, последняя, сравнительно с “голым” Android-ом, часто занимает в два-три раза больше места в ОЗУ.
  • Пользовательская – память, доступная после загрузки устройства. Бытует заведомо ложное мнение о том, что эта память вся и полностью доступна для последующего использования. Довольно часто производители добавляют в прошивку дополнения  (в лучшем случае периодически активирующиеся), которые невозможно очистить с помощью обычных таск-киллеров. К тому же подобные действия имеют скорее негативные последствия, учитывая, что подобного рода утилиты часто используют циклы процессора. Это еще одна причина их малоэффективности. Добавьте сюда автозагрузку ваших приложений, включая различные мессенджеры (коих у многих по несколько штук), оптимизация которых оставляет желать лучшего, и получите ответ на главный вопрос.
  • Доступная – зарезервированная системой память. ОС изначально “бронирует” определенное количество ОЗУ для предотвращения проблемных ситуаций, рационального использования памяти и быстрого запуска новых приложений.

Если взглянуть на историю развития ОЗУ, можно предположить, что главным девизом производителей было, есть и будет:

Больше, лучше, быстрее.

Перефразируя: “количество, качество, скорость”. И такая тенденция не может не радовать. Впрочем, и здесь есть свои особенности.

Автономность

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

Kak-pravilno-zarjazhat-akkumuljator-smartfona

ОС и оптимизация

Android. Начнем с того, что сама по себе ОС – урезанная и модифицированная версия Linux. Если представить систему в виде архитектурных строений, то над уровнем Linux стоит уровень инфраструктуры приложений, который содержит виртуальную машину, программное API, расширения и тому подобного. Здесь используется метод компиляции программного в байт-код, после – преобразование результата в DEX-файл, содержащийся в APK-архиве приложения. Эти файлы в свою очередь использует Dalvik (виртуальная Java машина). Позже заменен на ART.

Ключевым отличием ART от Dalvik является способ компиляции приложений. Dalvik делает это во время их запуска, то есть в режиме реального времени, что в свою очередь сильно нагружает процессор. С приходом ART разработчики поставили цель исправить эту и ещё некоторые веские проблемы, изменив концепцию реализации. ART преобразовывает код единожды, при установке приложения. Следовательно, последующий запуск приложений осуществляется значительно быстрее. По крайней мере, таковым был замысел обновления, но реальные тесты демонстрируют иную картину. А вот с увеличением размера приложения, за счет чего концептуально и должна ускориться загрузка и воспроизведение, они справились на “отлично”.

Также ART имеет непосредственное отношение и к ОЗУ. Учитывая вышеописанные изменения, преобразованный ранее код ускоряет процесс загрузки в первую очередь из-за незначительного потребления ОЗУ. И в тот же момент производители продолжают наращивать ее количество.

О времена! О нравы!

Тип памяти

Золотое правило “не количеством, а качеством” применимо и здесь. Более новый тип ОЗУ, например LPDDR4 с 2 ГБ памяти проявит себя гораздо лучше (в плане быстродействия), нежели LPDDR3 с 4 ГБ. Все дело в использовании более новых технологий, включая отличную частоту шины, уменьшение техпроцесса и тому подобного, что и позволяет достигать увеличения скорости и плавности работы по сравнению с более емкими, но старыми аналогами. Однако главным фактором продолжения гонки ОЗУ можно считать переход на 64-bit версию, что позволило переступить ограничение в 4 ГБ. Сейчас в зависимости от системы этот показатель множится на двузначные, а то и гораздо большие цифры.

Вывод

Достаточно нескольких слов: “Много оперативки не бывает”. По крайней мере, так считает большинство. С ними тяжело не согласиться, если не учитывать несколько важных факторов. Первый и самый главный – автономность. Второй – безответственность разработчиков. Теперь появилась ещё одна причина — “взападло” оптимизации. “А зачем?” – спрашивают они. Ведь со временем количество оперативной памяти только множится, соответственно, совершенствуется режим многозадачности и увеличивается объем фоновых процессов. Сейчас можно и не утруждать себя подобными вещами. Однако пользователи думают иначе. И проблема несовместимости – это проблема оптимизации. Но кроме пользователя это не интересно никому. Ни производителю, ни разработчикам. Утрирую, конечно, всегда есть исключение. Впрочем “правило большинства” также повсеместно. Их тоже можно понять. Фишка с флагманскими устройствами со временем нашла отклик в душе даже самых ярых хейтеров. Так зачем останавливать конвейер? Всё, что нужно теперь, – время от времени подкидывать дрова и собирать плоды.

А что же насчет ОЗУ? Ответ на главный, количественный, вопрос – архитектура системы и оптимизация приложений. Это определяющие факторы надобности. На сегодняшний день оптимальным вариантом является 3-4 ГБ четвертого класса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

27 комментариев

по хронологии
по рейтингу сначала новые по хронологии
1

И через 500 лет найдутся люди, которые будут вспоминать про предсказание Гейтса....
Обычно это делают те, кто не может предсказать, что будет завтра

Автор2

"А сегодня в завтрашний день не все могут смотреть. Вернее смотреть могут не только лишь все, мало кто может это делать" )

Автор4

Цитата (якобы принадлежащая Гейтсу) используется лишь в качестве шутки, но никак не упрека.

5
«640КБ должно быть достаточно для каждого» (640K ought to be enough for anybody) — легендарная фраза, приписывается Биллу Гейтсу, основателю Microsoft, 1981-й год, времена создания первых IBM PC и MS DOS 1.0.
Между прочим, сам Билл неоднократно утверждал, что он эту фразу не говорил — увы, истину установить уже не представляется возможным.

Так и знал, что тут будет эта фраза с Гейтсом :)

6

Сейчас выходят аппараты с 6гб ОЗУ, а используют они максимум 3 гб, так как программы начинают закрываться при попытке открыть больше приложений, чем на 3 гб. Да ну и кто будет держать в фоне пару игр и с десяток программ, чтоб загрузить все 6 гб озу? У людей на компьютерах 4 гб и для работы-этого достаточно.

7
Кашпировский

Вы не поверите. Мне для работы иногда моих 8 гб не хватает. И это я сейчас про виртуалки молчу

8

Вы не поверите, таких как вы-меньшинство.

9

"Для работы" только секретарше 4 гига оперативки достаточно)))

10
Victor Kiriltsev

вся работа не ограничивается серфингом и офисным пакетом

11

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

А если купить кошелёк большего размера - то увеличивается кол-во денег в нем))))))))))))))))
У процессов есть свой жизненный цикл, который никаким образом не учитывает кол-во памяти )

12
Oleh_firelion

Не зовсім. Система просто не буде прибивати процеси для звільнення пам'яті якщо ще є достатньо вільної.

13

Будет. И one plus 3 это доказал:D

14

Android не завершает процессы по требованию "Осталось мало памяти", таким занимаются только сторонние таск-менеджеры)
Если в памяти висит сервис с своим процессом - его не убьет ничто кроме него самого. Если висит процесс в приложении, взявший кусок памяти из кучи, она будет высвобождена как только в ней более не будет нужды, не раньше. Тоже самое касается потоков.

15
Oleh_firelion

ще й як прибиває, просто по дефолту сервіси запускаються з прапорцем sticky і перезапускаються якщо не самі завершили роботу, якщо ж запустити з non-sticky, то може бути вбитий, але так пріоритет в нього високий. Ну і про витоки пам'яті то ясно, якщо є ссилка - буде висіти.

16

Если какой-то сторонний таск-менеджер грохнет sticky, ос его перезапустит (к примеру медиа сервисы), а если non-sticky будет остановлен - он не будет перезапущен) Но сама ОС его не остановит из-за нехватки памяти) Она может заставить его освободить кучу, но не остановить

17
Oleh_firelion

Я вам певно секрет великий відкрию, але більшість таск менеджерів без рут доступу очищають оперативку шляхом забивання пам'яті всяким шлаком, а система автоматично то все чистить. Почитайте про пріоритети в андроїд. Якщо коротко - найвищий пріоритет має програма на передньому фоні з запущеним сервісом, все що має нижчий пріоритет може бути прибите системою для звільнення ресурсів. Можливо ви просто не стикалися з таким на девайсах бо оперативки дійсно багато і система процеси не прибиває. Крім того завершення процесів то як "останній метод" щоб звільнити ресурси і може рідко зустрічатися через великий об'єм доступної пам'яті.

18

Ну за 5 лет разработки -да, секреты 😁
У вас хоть раз ос стопорила процесс?
И если "останнiй метод" , то как же это перечит моему первому комменту - увеличение памяти не увеличит само по себе кол-во процессов ?)

19
Oleh_firelion

бувало на девайсах з <= 512 мб, хоча інколи і на 768 мб, проскакувало, але це тестові, з користувачів такої статистики не збирав.
А збільшить як мінімум тому що користувачі будуть більше запускати і буде більше в пам'яті висіти, і якщо раніше була необхідність системою чистити пам'ять то тепер її все менше.

20
Руслан

Вот и я часто думаю об этом: почему на моем стареньком ноутбуке 2 Гб ОЗУ и на нем отлично работает полноценный настольный Debian, а на новом смартфоне жены 4 Гб и Android, где в лучшем случае одновременно можно "нормально" работать в пару приложениях, но зато красивая и плавная анимация? И мое мнение: во всем виноваты пользователи, не желающие разбираться в устройстве ОС (это нормально для мобильных устройств, но не десктопов), и студенты-разработчики, прочитавшие две книги по Java, решившие что теперь они могут создать свое приложение (лишь бы работало) и зарабатывать на на нем миллионы. Кроме того, самим разработчикам ОС для "домохозяек" приходится подставлять различные костыли, жрущие ресурсы, дабы система была как можно проще и дружелюбнее к ним. Так, тот же настроенный Debian XFCE потребляет в простое 360 Мб, Ubuntu - "самый простой в освоении Linux" ест уже под 500 Мб, Win 10 и того больше (точно не скажу, нет под рукой). Вот и получается - красивая анимация в ущерб оптимизации. А что, всегда ведь можно впихнуть еще больше ОЗУ. А правильно ли это?

21

З приводу студентів... Ось цікаво як часто ви чи ваша дружина запускає проги no-name написані студентами-початківцями? Давайте будемо чесними - ні месенджери ні браузері ні твітер-клієнти, які більшість використовує не пишуться початківцями. Програми початківців просто не пробиваються в топ на play market. А винні у всьому початківці чомусь а не розробники платформи, для якої потрібно в 2 рази більше ОЗУ ніж для платформи-конкурента

22
Не так давно, возможность приостановить воспроизведение музыки и принять звонок, а после возвратиться к прослушиванию и продолжить с того же места вызывала у нас незыблемый восторг.

Не так давно - это во времена Siemens C25? Потому что в моей Nokia 6233 (а это 2007-й год) это уже было нормой и никакого восторга не вызывало.
Вообще, тема не раскрыта. Я думал, будут какие-то тесты. А тут по теме только последнее предложение, и то со взятыми "с потолка" цифрами.

Автор23

Спасибо, работаем над этим)

24
Темный

Как-то не до конца работаете, Денис )) Вот наугад взял фразу про память и проверил - ведь так и осталось все в тексте. Видимо, вы меня не совсем поняли, да? А ведь она звучать должна примерно так:

Более новый тип ОЗУ: например, устройство, оснащенное 2 ГБ LPDDR4 памяти проявит себя гораздо лучше (в плане быстродействия), нежели имеющее 4 ГБ, но LPDDR3.

25

Так почему же смартфону нужно больше оперативки чем компу?

26
Так почему же смартфону нужно больше оперативки чем компу?

Може я й дурницю скажу, бо я не програміст, але мені здається що справа в різному "Залізі" Манюсінькі процесори смартів ніби й 8-ядерні, але чомусь не дотягують до 2-ядерних компівських. 12-мегапіксельна камера смарта не малює так як 8-мегапіксельна в цифровику з нормальною оптикою...

27

Хоч я не програміст але скажу таку річ:
Сучасна ОС це надбудова над браузером.
А сучасний браузер ... це ХРОМ.
Хром як монополіст вводить нові стандарти і при відсутності конкуренції ці стандарти не досить ... якісні і продумані.
Ось наприклад опера 12 вимагала з 20 відкритими вікнами 600-800 мгбайт. а хром з цим ж набором вимагатиме 2 і більше гб.
Також прошу звернути увагу на те що колись було достатньо пентіум 3 і 512 мб озу. для того щоб сидіти в інтернеті.
Зараз ж на цій конфігурації ... сидіти нереально. Та навіть на пентіум4ому нереально сидіти з 1 гігом озп.
Сучасні вебстандарти навязані нам гуглом і є причиною ненаситності наших компютерів ноутбуків і ... мобілок.

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

Modal box

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: