- Сколько оперативной памяти нужно смартфону? Помогаем определиться.
- Что такое оперативная память?
- Сколько оперативной памяти должно быть в смартфоне?
- Как очистить оперативную память?
- Анализ памяти для Android приложений
- Инструменты
- Пример: Отладка утечки памяти
- Исследование кучи с помощью DDMS
- Создание дампа кучи
- Анализ дампа кучи при помощи MAT
- Сравнение дампов кучи с помощью MAT
Сколько оперативной памяти нужно смартфону? Помогаем определиться.
Часто в Интернете можно встретить обсуждение характеристик смартфонов. Самые жесткие баталии обычно разворачиваются по поводу оперативной памяти и камеры. Наверное, первое вызывает даже больше споров. Но кто прав?
Зачем смартфону много оперативной памяти?
Что такое оперативная память?
Кто-то утверждает, что оперативки должно быть не меньше 8 ГБ, другие говорят им, что и 2 ГБ достаточно, но самые рассудительные предпочитают остановиться на 4 ГБ или 6 ГБ и не переплачивать за цифры, которые далеко не все смогут заметить. Чем же хорош большой объем памяти? И почему надо обращать на него внимание, но не гнаться за недостижимыми 12 ГБ и более? Постараемся ответить на этот вопрос.
Если грубо, то оперативная память — это то, что позволяет компьютеру или смартфону работать быстро и не загружать данные из не очень быстрой постоянной памяти. Если говорить более научно, можно привести следующее определение:
Оперативная память (англ. Random Access Memory, RAM, память с произвольным доступом) или оперативное запоминающее устройство (ОЗУ) — энергозависимая часть системы компьютерной памяти, в которой во время работы компьютера хранится исполняемый машинный код (программы), а также входные, выходные и промежуточные данные, обрабатываемые процессором.
В отличии от энергонезависимой постоянной памяти, оперативка зависит от поданного на нее питания. Если питание прерывается даже на минимальный промежуток времени, данные в ней могут быть искажены или и вовсе потеряны. Это является обратной стороной ее преимуществ.
В смартфонах оперативная память активна при работе смартфона. В компьютерах предусмотрен спящий режим и гибернация. Первый позволяет перевести компьютер в режим минимального энергопотребления, а второй и вовсе перегрузить все данные оперативной памяти на постоянный накопитель и выключить компьютер.
Сколько оперативной памяти должно быть в смартфоне?
Частым вопросом при выборе смартфона является: “А достаточно ли будет ХХ ГБ оперативной памяти для того-то?” Однозначно ответить на этот вопрос трудно, так как кроме описанной задачи, владельцы смартфонов часто пользуются и другими, даже не подозревая о том, что они еще более требовательные.
Например, пользователь говорит, что он играет в Asphalt 9 и пользуется мессенджерами. При этом он думает, что игра требовательна к памяти, а остальное нет. Он не прав.
Эту игру знают почти все.
Мессенджеры действительно требуют немного памяти. Как правило, значение не превышает 200-300 МБ. В свою очередь, Asphalt 9 для работы необходимо чуть меньше одного гигабайта. Примерно столько же нужно для работы браузера. Про это многие забывают и думают, что 2 ГБ, а то и вообще 1 ГБ, им будет достаточно. Проблема в том, что кроме приведенных “потребителей”, память требуется и самой системе.
Потенциально система может потреблять сколько угодно оперативки, если позволить ей это делать. В некоторых случаях и 12 ГБ будет мало, если засорить оперативку ненужными программами и процессами. Чтобы этого избежать, надо просто следить за настройками и установленными приложениями.
При этом мы не рекомендуем пользоваться приложениями для ускорения смартфона и очистки оперативной памяти. С одной стороны, они действительно могут останавливать процессы, но зачастую эти же процессы запускаются снова. В итоге мы ничего не выигрываем с точки зрения очистки памяти, но забиваем ее новым требовательным приложением.
Лучше просто перейти в настройки и проверить, как используется память. Ниже по тексту напишу подробно, как это сделать.
Исходя из сказанного, можно сделать вывод, что если вы не хотите покупать дорогое устройство, золотой серединой объема оперативной памяти будет 4 ГБ. Это именно то значение, которого будет достаточно в ближайшее время, но за которое не придется переплачивать.
Например, смартфон Honor 20 Lite с 4 ГБ оперативки можно купить на несколько тысяч дешевле моделей с 6 ГБ ОЗУ. Кроме этого, на борту будет 128 ГБ постоянной памяти. Это правда один из лучших показателей в своем сегменте, и смартфон является больше исключением, чем правилом. Другие модели с такой парой ОЗУ/ПЗУ будут дороже.
Этот смартфон очень интересен по соотношению характеристик.
Тем более этот смартфон предлагает еще и тройную основную камеру на 48 МП, фронталку на 24 МП, быструю зарядку HONOR SuperCharge мощностью 18 Вт, процессор Kirin 710 и 6,15-дюймовый дисплей с разрешением 2312 на 1080 точек. При такой диагонали и благодаря узким рамкам плотность пикселей достигает 415 точек на дюйм. Это даже круче, чем у многих смартфонов, претендующих на звание флагманов. Приятно, что производитель не стал экономить на дисплее, как это часто делают конкуренты, останавливаясь на экранах с разрешением 720p.
Так выглядит фото при слабом освещении.
А так при комнатном.
Можно даже сказать, что при всех этих параметрах, Honor 20 Lite является лучшим в своей категории. Есть смартфоны, которые могут предложить память, камеру или экран, но выбирать придется что-то одно. Тут производитель смог собрать все воедино и сделать смартфон, который объединил все это под своим стильным стеклянным корпусом.
Такой корпус выглядит очень хорошо.
Немаловажным фактором является оптимизация работы смартфона. Ведь многие процессы, которые занимают оперативную память, можно спокойно от нее изолировать. В итоге работать смартфон будет с той же скоростью, но оперативки ему понадобится существенно меньше. Honor 20 Lite является примером таких смартфонов.
Особенно он должен будет прийтись по вкусу молодым людям, которые хотят купить хороший смартфон, но не хотят платить за него большие деньги. Honor 20 Lite действительно является устройством, которым и пользоваться приятно, и людям показать не стыдно.
Тем не менее, даже хорошему смартфону надо периодически чистить память. Поэтому, давайте поговорим о том, как это сделать.
Как очистить оперативную память?
Для очистки оперативной памяти можно посоветовать простое средство. Нужно “всего лишь” отказаться от требовательных приложений. Конечно, сделать это не всегда легко и в этом случае оптимальным вариантом будут другие шаги.
Первым делом стоит сократить количество виджетов, которые постоянно обновляют данные и висят в оперативной памяти. Заодно и аккумулятор сэкономите, отказавшись от них. Стоит уйти от видеообоев, которые также “подъедают” ОЗУ. После этих операций разница уже будет видна, но есть еще одно средство.
Напишите в нашем Telegram-чате, как вы боретесь с недостатком оперативки и сталкивались ли вы с ним.
Приложения, которыми вы давно не пользовались, тоже могут потреблять оперативную память. Их лучше удалять, если они вам не нужны, хотя бы временно. Есть системные приложения, которые нельзя удалить, но на них тоже есть управа. Для этого надо перейти в ”Настройки”, далее ”Приложения и уведомления”, потом ”Просмотреть все приложения”. Теперь можно выбрать нужное (а точнее, ненужное) приложение и нажать “отключить”.
Чтобы узнать, какие приложения расходуют память, можно перейти в настройки, зайти в раздел “О телефоне” и несколько раз тапнуть по полю “Номер сборки”. После этого вернуться на один пункт меню назад, открыть “Настройки разработчика” и далее перейти в “Память”. Там вы получите всю необходимую информацию.
Несколько раз тапнуть сюда.
Перейти в режим разработчика.
Посмотреть раздел «Память».
Все эти процедуры в комплексе позволят существенно сократить расходование оперативной памяти, а следовательно, сэкономить деньги, купив менее дорогой смартфон. Ведь лучше потратить деньги не на оперативку, которую система “сожрет и не подавится”, а скажем, на хорошую камеру и больший объем встроенной памяти, чтобы сохранять фотографии.
Статья опубликована на правах рекламы
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Как вы покупаете смартфоны? Я предпочитаю заказывать доставку. Во-первых, так не нужно идти в магазин физически, во-вторых, так аппарат гарантированно приходит запечатанный, а, в-третьих, так я получаю право без объяснения причин вернуть его продавцу в течение 7 дней. Это удобно. Но многие по-прежнему предпочитают ходить за техникой в магазин самостоятельно. Им такой способ кажется более надёжным, потому что товар минует доставку и сразу попадает им в руки. Но ведь не ровен час нарваться на витринный образец. А нужен ли он вам?
Вчера Apple представила новый iPhone 13. На самом деле представлено было 4 модели, среди которых есть две продвинутых модели с уточняющими приставками, но для удобства все всё равно обобщают их и называют одним именем. Несмотря на то что iPhone 13 Pro и 13 Pro Max получились куда более совершенными в техническом плане, в сравнении с современными смартфонами на Android они таковыми совершенно не выглядят. Попробуем разобраться, где Apple схалтурила и почему всё это можно было дать пользователям намного раньше.
Многие из нас уже начали заново открывать другие страны, несмотря на многочисленные запреты и ограничения. Мой друг не так давно вернулся из небольшого путешествия по Европе, которого ждал почти два года. Впечатления остались на всю жизнь, но два года без поездок дали о себе знать: многие лайфхаки и правила товарищ подзабыл, что незамедлительно превратилось в локальные мемы и шутки. Если серьезно, то смартфон в путешествии — ваш основной спутник и помощник, без которого передвигаться по странам станет намного сложнее и скучнее. Шутки в сторону: собрали главные правила использования смартфона в путешествии.
Источник
Анализ памяти для Android приложений
В Dalvik есть сборщик мусора, но это не значит, что можно игнорировать управление памятью. Даже наоборот — нужно быть особенно внимательным при использовании памяти, которая, как известно, на мобильных устройствах ограничена. В этой статье будут рассмотрены инструменты, которые значительно помогают следить за тем, как приложение использует память.
Некоторые проблемы от чрезмерного использования памяти вполне очевидны. Например, в вашем приложении постоянно происходит утечка памяти, когда пользователь прикасается к экрану, тогда это в конечном итоге, возможно, вызовет OutOfMemoryError, и произойдет сбой и закрытие приложения. Другие проблемы, более тонкие, чем эта могут приводить к общему спаду производительности приложения и системы в целом (потому что сборщик мусора будет вызываться более часто и на более продолжительное время).
Инструменты
Android SDK обеспечивает два основных устройства для профилирования использования памяти приложением: вкладка Allocation Tracker в DDMS и дампы кучи (heap dumps). Allocation Tracker может быть полезен в том случае, когда вы хотите узнать об использовании памяти в конкретный период времени, так как он не дает информации о полном состояния кучи, которая выделяется под приложение. За более подробной информацией об Allocation Tracker можно обратиться к статье Tracking Memory Allocations. Остальная часть этой статьи будет посвящена исследования дампов кучи, так как это более мощный инструмент.
Дамп кучи — это снимок состояния всей кучи приложения, который хранится в бинарном файле, формата HPROF. Dalvik использует формат, который похож на тот, который используется инструментом HPROF в Java, но не является точно таким же.
Есть несколько способов создать дамп кучи выполняющегося Android приложения. Первый — использовать кнопку Dump HPROF file в DDMS. Если вам нужно выбрать момент создания дампа более точно, то можно создать его программно, при помощи метода android.os.Debug.dumpHprofData().
Для анализа можно использовать стандартный инструмент jhat или Eclipse Memory Analyzer (MAT). Однако, сначала нужно конвертировать .hprof файл из Dalvik формата в J2SE HPROF формат. Для этого используется утилита hprof-conv, которая поставляется с Android SDK:
Пример: Отладка утечки памяти
В Dalvik программист не размещает что-либо явно в свободную память, поэтому могут возникать утечки, как в языках C и C++. Под «утечкой памяти» обычно понимают ситуацию, при которой вы продолжаете ссылаться на объект, который больше не нужен. Иногда, одна единственная ссылка может предотвратить вызов сборщика мусора для удаления большого набора объектов.
Давайте рассмотрим приложение Honeycomb Gallery sample app из Android SDK. Это простая фотогалерея, которая демонстрирует использование неких методов нового API в Honeycomb. Сейчас мы преднамеренно создадим утечку памяти, чтобы затем продемонстрировать метод отладки.
Представим себе, что мы хотим, чтобы приложение получало изображения по сети. Чтобы сделать его более отзывчивым к пользователю, возможно, стоит реализовать кэш для хранения недавно просмотренных изображений. Мы можем это сделать, внеся некоторые изменения в ContentFragment.java. В начале класса объявим и инициализируем новую переменную:
В этом отображении мы будем кэшировать загруженные Bitmap’ы. Теперь можно изменить метод updateContentAndRecycleBitmap() для проверки кэша перед загрузкой и добавления Bitmap’ов в кэш после загрузки:
Здесь я преднамеренно создал утечку памяти: Bitmap’ы добавляются в кэш, но не удаляются из него. В реальном приложении очевидно, что размер кэша нужно ограничивать.
Исследование кучи с помощью DDMS
Dalvik Debug Monitor Server (DDMS) — это один из главных инструментов для отладки в Android. Он является частью плагина ADT к среде разработки Eclipse, его также можно найти в папке tools/ вашего Android SDK. Для более подробной информации можно прочесть Using DDMS.
Давайте используем DDMS для анализа использования кучи нашим приложением. Вы можете запустить DDMS двумя способами:
- Из Eclipse: Window -> Open Perspective -> Other… > DDMS
- Из командной строки: запустите ddms (или ./ddms на Mac/Linux) в папке tools/
Выберите процесс com.example.android.hcgallery в левой панели и кликните на кнопку Show heap updates на панели инструментов. Затем переключитесь на вкладку VM Heap в DDMS. Вы увидите некоторую базовую информацию об использовании кучи, которая будет обновляться при каждом вызове сборщика мусора. Чтобы увидеть первое обновление, кликните на кнопку Cause GC.
Можно заметить, что «живые» объекты занимают в памяти чуть меньше 8Мб (см. на колонку Allocated ). Теперь пролистаем фотографии, и можно будет увидеть, как это число увеличивается. Так как в приложении всего 13 фотографий, то утечка памяти ограничена. В некотором смысле, это наихудший случай, который может получиться, поэтому здесь никогда не будет OutOfMemoryError.
Создание дампа кучи
Кликните по кнопке Dump HPROF file в панели инструментов DDMS, выберите место сохранения файла, и сконвертируйте его, используя утилиту hprof-conv. В этом примере, мы будем использовать отдельную версию MAT (1.0.1), её можно скачать здесь.
Если вы используете Eclipse, с установленным MAT, то после нажатия на кнопку «dump HPROF», файл автоматически конвертируется и откроется в окне Ecilpse.
Анализ дампа кучи при помощи MAT
Запустите MAT и загрузите HPROF-файл, который был только что создан. MAT — мощная утилита, и разъяснение всех её особенностей вне этого топика, поэтому я объясню только один из методов как можно определить утечку — при помощи вида «Гистограмма» (Histogram view). В этом виде можно увидеть список классов, отсортированных по числу экземпляров, shallow heap (общий размер памяти, занимаемый экземплярами), или retained heap (общая память, занимаемая экземплярами и объектами, на которые они ссылаются).
Если отсортировать по shallow heap, то можно увидеть, что вверху окажется число экземпляров byte[]. В Android 3.0 Bitmap’ы представляются в виде массивов из байтов, размер которых зависит от размера Bitmap’a. То есть понятно, что они представляют память, которая занимается нашими Bitmap’ами. Щелкните правой кнопкой на классе byte[] и выберите List Objects > with incoming references. Вы увидите список всех массивов из байтов, размещенных в куче.
Выберите один из больших объектов и раскройте его. В итоге вы увидите всю цепочку ссылок, которая образуется из-за этого объекта. Вот он — наш кэш для Bitmap’ов!
MAT не может дать точную информацию является ли это утечкой, так как он не знает, нужны ли эти объекты. Ответ знает только программист. В нашем случае, кэш очень большой, сравнительно со всем приложением, поэтому логично было бы ограничить его размер.
Сравнение дампов кучи с помощью MAT
При отладке утечек памяти, бывает полезно сравнить состояние кучи в разные моменты времени. Чтобы сделать это, создайте два HPROF файла (не забывайте их конвертировать утилитой hprof-conv).
Вот как вы можете сравнить эти два файла:
- Откройте первый файл (File > Open Heap Dump).
- Откройте гистограммный вид.
- В виде истории навигации (Window > Navigation History), щелкните правой кнопкой на histogram и выберите Add to Compare Basket.
- Откройте второй файл и повторите шаги 2 и 3.
- Переключитесь в вид Compare Basket, и кликните Compare the Results (красная иконка восклицательного знака в правом верхнем углу)
Источник