Поскольку устройства Android начинают переходить на 6 ГБ ОЗУ, мы должны задать себе вопрос: сколько ОЗУ нам действительно нужно? Следуйте за нами, пока мы исследуем!
Недавно мы узнали об одном из первых смартфонов под управлением Android с 6 ГБ оперативной памяти.
6 чертовых ГБ! Это очень много оперативной памяти в мобильном устройстве.
Запуск игры с числами Виво Xplay5 Элит. Vivo как компания, возможно, не очень известна за пределами Китая, но, надо отдать ей должное, в прошлом она выпускала действительно тонкие смартфоны. Создавая Xplay5 Elite, они постарались объединить множество характеристик устройства, призванного занять место среди королей.
Vivo Xplay 5 Elite оснащен 5,43-дюймовым дисплеем QHD Super AMOLED с двойным изгибом на металлической рамке корпуса. Внутри находится новейший процессор Qualcomm Snapdragon 820 с тактовой частотой 2,15 ГГц, графический процессор Adreno 530, 6 ГБ оперативной памяти LPDDR4 и 128 ГБ встроенной памяти без возможности расширения. Что касается камеры, то задняя часть представляет собой сенсор Sony IMX298 на 16 МП с диафрагмой f/2.0, а передняя — на 8 МП. Принимая во внимание эти характеристики и металлическую конструкцию устройства, неудивительно, что оно будет стоить немало даже для китайского потребителя. При цене 4288 юаней (660 долларов США) это, безусловно, китайский флагман, а не доступный средний класс.
Vivo Xplay5 Elite на данный момент не единственный смартфон с 6 ГБ оперативной памяти. Менее известный и недавно основанный китайский OEM-производитель Vernee стремится обеспечить большую доступность для потребителей гигантских объемов оперативной памяти, выпустив устройство среднего класса Vernee Apollo.
Vernee Apollo будет оснащен высококлассной SoC MediaTek Helio X20. Будет вышеупомянутое 6 ГБ оперативной памяти, 128 ГБ встроенной памяти, 21-мегапиксельная задняя камера Sony IMX230 и 5,5-дюймовый 2K-дисплей. При этом стоимость Apollo составит 399,99 долларов. В отправленной нам информации для прессы не было упоминаний о китайской цене или целевых рынках, поэтому телефон до сих пор остается загадкой.
Оба этих телефона просят нас задаться вопросом, действительно ли мы очень нужно столько оперативной памяти прямо сейчас?
Чтобы ответить на этот вопрос, нам нужно понять, как Android управляет памятью и оперативной памятью. Мишаал проделал фантастическую работу по объяснению тонкостей управления памятью Android в предыдущая статья, который до сих пор сохраняет свою актуальность спустя шесть месяцев.
"Способ, которым Android управляет памятью, заключается в следующем: вместо того, чтобы немедленно убивать каждый процесс после завершения его активности (например, когда вы нажимаете кнопку «Домой», чтобы выйти из приложения), процесс сохраняется в памяти до тех пор, пока системе не потребуется завершить его, чтобы освободить больше памяти. Как система решает, какие процессы сохранить, а какие уничтожить? Драйвер LMK (Low Memory Killer). Каждому процессу служба ActivityManager присваивает значение oom_adj в диапазоне от -17 до 15, которая динамически корректирует значение oom_adj в зависимости от важности процесса. Более высокие значения oom_adj означают, что процесс с большей вероятностью будет завершен для освобождения памяти, а более низкие значения означают, что процесс с меньшей вероятностью будет завершен."
"Android классифицирует каждый процесс на пять категорий (передний план, видимый, сервисный, фоновый и пустой), от самого важного до наименее важного для продолжения работы. Процессы, принадлежащие к каждой категории, уничтожаются на разных уровнях оставшейся свободной памяти (так называемое значение LMK minfree). Например, если значения minfree LMK вашего устройства установлены на «2560,4090,6144,7168,8192» (указанные как страницы размером 4 КБ, которые можно прочитать из /sys/module/lowmemorykiller/parameters/minfree), то ваше устройство уничтожит процессы, определенные как «Пустые», когда ваша свободная память упадет ниже 32 МБ, процессы, определенные как «Фоновые», когда свободная память станет ниже 28 МБ, и приложения переднего плана, когда свободная память упадет ниже 10 МБ (Боже упаси!) Эти значения minfree в наши дни нетипичны для большинства устройств, поскольку производители любят настраивать их по своему вкусу в зависимости от того, как, по их мнению, это лучше всего подходит для их устройства. Но из этого краткого объяснения вы должны вынести то, что чем больше у вас свободной памяти, тем меньше вероятность того, что критически важные процессы будут отключены."
Как упоминает Мишаал, фактические значения варьируются от OEM-производителя к OEM-производителю, поэтому у вас может быть разный опыт многозадачности на разных телефонах со схожими характеристиками. Еще одной переменной в этой смеси является количество вредоносного ПО на устройстве. Сильно модифицированные UX-интерфейсы Android, такие как TouchWiz, как правило, содержат множество функций помимо Android на базе стандартной версии. AOSP и, как таковой, требуют выделения гораздо большего количества ресурсов системе для функционирования на уровне, требуемом OEM. это чтобы. Это оставляет меньше места для кэширования сторонних приложений, что, в свою очередь, усугубляет нехватку памяти.
По большей части Мягкий
"Основное различие между устройством с 2 ГБ ОЗУ и устройством с 3 ГБ ОЗУ заключается в том, что устройство с 3 ГБ ОЗУ ОЗУ должна иметь возможность кэшировать больше процессов в фоновом режиме, не вызывая драйвер LMK для их завершения."
Таким образом, теоретически, больший объем оперативной памяти, доступной на аппаратном уровне, должен привести к тому, что больше процессов останется кэшированными на уровне ОС, а также к увеличению пула, которым сможет воспользоваться OEM-производитель. Но чаще всего, даже на устройствах с 2 ГБ ОЗУ, вы видите гораздо больше свободной оперативной памяти, даже после того, как система и приложения зафиксировали то, что им нужно. Вот та же галерея из поста Мишаала, в которой сравнивается свободная оперативная память на различных устройствах:
Как видите, устройства с самым легким пользовательским интерфейсом, такие как Nexus 5 и Nexus 6, имеют наибольшую долю свободной оперативной памяти, доступной на устройстве. Даже самый тяжелый из них, Samsung Galaxy Note 5 с 4 ГБ ОЗУ и TouchWiz для загрузки, имеет около 1,7 ГБ ОЗУ, доступного для кэширования приложений. Даже с таким большим объемом свободной оперативной памяти Note 5 страдал от проблем с многозадачностью, из-за которых устройство прибегало к агрессивной обработке памяти. Это произошло из-за выбора производителем значений LMK: накачка большего количества оперативной памяти на аппаратном уровне не поможет! Исправление для Note 5, направленное на улучшение многозадачности, фактически включало настройку этих значений LMK, чтобы они были более многозадачность лучше, чем стандартные настройки Samsung, что иронично для устройства, ориентированного на производительность. Таким образом, простое увеличение объема оперативной памяти не сделает устройство автоматически более удобным для многозадачности.
Возвращаясь снова к галерее, часть отображаемой свободной оперативной памяти уже используется для кэширования процессов приложения, но часть ее фактически простаивает, ничего не делая. Вот несколько снимков экрана с моего OnePlus One, показывающие отображаемую свободную оперативную память, а затем разделение на кэшированную и неиспользуемую ОЗУ:
Даже в том небольшом случае, примерно в 1 секунду, который мне потребовался, чтобы выйти из активной игры и выбрать опцию отображения кэшированных процессов, система работала над сокращением фактического используемого ОЗУ. Это произошло потому, что в игре, в данном случае NFS No Limits, изменился приоритет: переход от процесса переднего плана к фоновому процессу. Это было сделано для того, чтобы обеспечить бесперебойную работу ОС в любое время, поскольку объем оперативной памяти при активном использовании изменился с 2,5 ГБ до 1,9 ГБ, а игровой процесс NFS No Limits был кэширован. Поскольку приоритет игры изменился, ее теперь можно убить, если ОС действительно требуется больше свободной оперативной памяти. Здесь не требуется никакого взаимодействия с пользователем.
Целью этого примера было показать, как управление памятью Android изменилось и стало более эффективным при определении приоритетов системы и всех ее процессов. Немногие приложения будут оставаться в кэше в любое время: в идеале ОС не использует всю свободную оперативную память для процессов кэширования. Часть свободной оперативной памяти остается бездействующей. Это сделано специально для тех случаев, когда процессу может потребоваться очень быстро увеличить использование оперативной памяти.
Также существует ограничение на выделение оперативной памяти для процессов приложения, которое снова определено OEM-производителем для отдельных телефонов. Согласно старый пост обсуждения Дайанн Хакборн, инженер Android Framework, существует ограничение на Java-куча где объекты Java будут находиться до начала сборки мусора, но даже это можно расширить с помощью умного использования NDK. Проще говоря, это означает, что существует максимальный предел оперативной памяти, доступный любому приложению, которое хочет запускаться на этом устройстве. Для старых устройств эта куча была установлена на уровне 24 МБ, но на последних устройствах размер был увеличен благодаря увеличению оперативной памяти в устройствах, а также возросшим требованиям к оборудованию. Android Документ определения совместимости для Андроид 6.0 упоминает (раздел 3.7) минимальные значения, которые эти кучи должны быть установлены OEM-производителем. Для сравнения, мой OnePlus One на CM12.1 может похвастаться ограничением в 192 МБ для обычных куч виртуальных машин Dalvik и допускает до 512 МБ для приложений, которые указывают android: bigheap=true в манифесте приложения. Теоретически одно приложение может использовать на моем устройстве не более 512 МБ ОЗУ. Помимо этого, будет запущена сборка мусора, чтобы обеспечить бесперебойную работу других необходимых системных процессов.
Теперь объедините ограничение размера кучи для приложений со значениями LMK, назначенными им на основе их приоритета и ОС настаивает на том, чтобы определенный объем свободной оперативной памяти оставался бездействующим, и вы можете себе представить, как многозадачность Android работает. Это сложный механизм, в котором задействовано множество переменных между оборудованием, программным обеспечением и самим приложением; точно настроен, чтобы позволить даже самым простым устройствам функционировать, в то же время позволяя лучшим флагманам теоретически полностью использовать свой потенциал. На практике это не идеальный мир, поэтому ни того, ни другого не происходит. Это означает, что нет никакой гарантии, что устройство с 4 ГБ ОЗУ будет работать так же, как устройство с 4 ГБ ОЗУ. Это также не означает, что дополнительный ГБ ОЗУ сверх определенного порога даст вам прямо пропорциональное увеличение многозадачности и обработки памяти.
Практичность и будущее
Итак, возвращаясь к исходному вопросу, вам действительно нужно 6 ГБ оперативной памяти в ваших устройствах в начале 2016 года? Для меня ответ — нет.
Большинство моих устройств имеют 3 ГБ ОЗУ LPDDR3, а одно — 4 ГБ ОЗУ. А заметной разницы в производительности в многозадачности просто нет. Вот демонстрация многозадачности из моего недавнего обзора OnePlus X, устройства с 3 ГБ ОЗУ и почти стандартным ПЗУ Android:
На устройстве не было проблем с переключением между 12 приложениями (13, если считать активную программу записи экрана) без необходимости закрытия любого из этих приложений. Не было никакой перезагрузки или перерисовки, и этот опыт остается на удивление стабильным на протяжении всего ежедневного использования без каких-либо перезагрузок или ручного закрытия приложений. Обычному потребителю просто нет необходимости активно переключаться между этим множеством приложений во время практического использования!
Но что, если вместо этого пользователь захочет переключаться между этим множеством игр? Согласен, упомянутые выше факторы вступят в силу, чтобы в лучшем случае можно было переключаться между несколькими играми. В таких условиях наличие большего количества физической оперативной памяти позволит устройству пассивно хранить в памяти больше игр. Но противовесом этому преимуществу является то, что многие игры часто принудительно перезагружаются при многозадачности! Их намерение состоит в том, чтобы избежать манипулирования игровыми данными мошенническими механизмами во время работы игры, поэтому перезагрузка/повторная синхронизация/обновление заставляет проверки целостности снова вступить в игру. Их намерения разные, но из-за этого многие игры являются плохими кандидатами на многозадачность между ними.
Есть еще несколько факторов, которые помешают вам воспользоваться всей этой великолепной оперативной памятью. Если вы обнаружите задачу или несколько задач вместе, для которых требуются все 6 ГБ оперативной памяти LPDDR4 вашего устройства, у вас возникнет гораздо более серьезное узкое место в виде мобильной SoC. Конечно, Snapdragon 820 и Helio X20 могут быть флагманскими процессорами своих компаний, но они по-прежнему остаются мобильными SoC. Таким образом, они имеют другие ограничения, такие как выделение тепла, рассеивание тепла, тепловое регулирование и аккумулятор. жизни, что сделало бы их плохим выбором для задач, достаточно интенсивных, чтобы использовать такой большой объем оперативной памяти в течение длительного периода время. В таких случаях лучше использовать систему, которую нельзя держать в руках; тот, который имеет более либеральные ограничения на тепло, которое он может генерировать, и на мощность, которую он может потреблять.
В конце концов, независимо от того, сколько у вас свободной оперативной памяти, приложения все равно будут удалены. Именно так работает управление памятью. У увеличения объема оперативной памяти все еще есть преимущества, например, дальнейшее увеличение размера кучи поможет питание растровых ресурсов на дисплеях с более высоким разрешением, что позволяет нам выйти за рамки разрешений QHD на наших устройствах. Увеличение размера кучи, как тенденция на рынке, приведет к появлению приложений, которые могут стремиться делать больше. Если оперативная память не заблокирована как неприкосновенная, ей всегда найдется то или иное применение. Но учитывая, что экраны на флагманах колеблются между 1080p и 1440p, мы можем рассматривать 4 ГБ как разумный стандарт еще на год или два.
В заключение мы получаем ответ на вопрос: можем ли мы очень нужно столько оперативной памяти прямо сейчас? Нет, мы этого не делаем. Для устройств, для которых цена является одним из факторов, которые им необходимо поддерживать на низком уровне, 3 ГБ или 4 ГБ ОЗУ будут достаточно хорошими. Для флагманов, пользующихся спросом со стороны пользователей, которых не так уж заботят цены, не помешало бы проверить их на будущее. Как клиент, просто обратите внимание, что вы пока не будете использовать всю эту оперативную память.
Что вы думаете о телефонах с 6 ГБ оперативной памяти? Дайте нам знать ваши мысли в комментариях ниже!