Як використання оперативної пам’яті впливає на злив акумулятора?


17

Я дуже заплутана в управлінні пам’яттю Android.

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

Це означає, що занадто багато оперативної пам'яті не розряджає акумулятор? Оскільки оперативна пам’ять - це обладнання, утримуючи щось на ній, не повинно розряджатися акумулятор? Що робити, якщо я грав у Temple Run та просто натисніть кнопку додому, щоб додаток завантажувалось швидше наступного разу, коли я запускаю? Або ми просто натискаємо кнопку назад до виходу програми, як це робимо завжди? Я також шукав в Інтернеті, але дехто сказав, що він буде розряджати акумулятор, оскільки він сидить на оперативній пам’яті, дехто сказав, що немає різниці між оперативною пам’яттю, яка містить фактичні дані або нічого. Чи варто відмовитися від звички вбивати додатки та просто відчувати себе розслабитися?

Деякі точні відповіді були б дуже вдячні. Спасибі. :)


1
Ваша оперативна пам’ять - це один із найменш обтяжених обладнанням ...
Brian S

Ваш приклад із храмом може виявитися не найкращим: оскільки ігри можуть зголодніти пам’яттю, вони або будуть вбиті ОС досить швидко, або активно активуватимуть важливі дані при відправці на другий план. У цьому випадку воно може завантажуватися трохи швидше, тому що якась невелика частина все ще завантажена, але дані гри, ймовірно, потрібно буде завантажити все одно. Кращим прикладом може бути простий клієнт щебетання: це може приємно і затишно знаходитись у вашій оперативної пам’яті, доки вам знову не знадобиться.
Нанна

Відповіді:


22

Я сумніваюся, що існує пряма кореляція між витратою акумулятора та використанням оперативної пам’яті. Обладнання не знає, які комірки оперативної пам’яті містять «використані» дані, а які ні. Таким чином, не може бути різниці в споживанні акумулятора на цьому рівні.

Але я думаю, що можна сказати, що зайве вбивство Apps викликає кілька додаткових циклів процесора, коли ці програми повинні бути перезапущені, і тому "використовує більше акумулятора".

І так, ви, безумовно, повинні відмовитися від звички вбивати додатки. У більшості випадків Android здатний досить добре керувати ресурсами системи, і ви не повинні турбуватися з ручним вбивством Apps. Вони точно не будуть витрачати більше акумулятора, якщо просто простоюють і споживають деяку кількість ОЗУ. Звичайно, якщо ці програми постійно користуються процесором, вони розрядять акумулятор (але це, як правило, ознака помилки в додатку чи погано реалізованому додатку).


З іншого боку, є недоброзичливі програми, які прокидаються і не засинають за розумну кількість часу. Це програми, які, ймовірно, можуть спричинити неприємності з акумулятором. Ви можете подивитися на них, використовуючи детектор
Wakelock

Ось чому я сказав, що програми, які постійно використовують процесор, зазвичай несправні або принаймні погано реалізовані. Зауважте, що я б не рекомендував використовувати такі програми, як Wakelock Detector, оскільки ця функціональність зараз є частиною Android (з 4.4 IIRC).
Потік

16

Подумайте про оперативну пам’ять як про паперовий ноутбук. Ви можете записати дані в книгу (олівцем), а також можете стерти ці дані та замінити їх новими, але ця вага завжди однакова. Що б ви не написали, книга не стає важчою. Таким же чином, при сучасній технології оперативної пам’яті фіксується використання акумуляторної пам’яті акумулятора незалежно від того, що (якщо що-небудь) зберігається в ньому.

З точки зору Android, не має значення, залишаєте ви додаток за допомогою кнопки додому чи кнопки "назад". Натискання кнопки "назад" не вбиває додаток і не видаляє його з ОЗУ. Якщо вимкнути додаток зі списку "останніх програм", це не вбиває програму та не видаляє її з оперативної пам'яті. Єдина відмінність полягає в тому, щоб змінити те, що додаток показує вам при наступному запуску: екран, на якому ви були раніше, або головний / перший екран програми.

Уявіть, що у вас є зошит (як і раніше) та велика шафа з великою кількістю довідників. Ви не можете носити довідники з собою, тому якщо вам потрібно знати про тему, вам доведеться скопіювати інформацію з довідника у свій маленький зошит. Коли у ноутбука не вистачає місця, ви користуєтеся гумкою, щоб знову стерти інформацію, яка вам більше не потрібна, щоб ви могли скопіювати в неї більше інформації.

Все це копіювання стомлює. Отож, як тільки ви скопіювали якусь інформацію, ви хочете зберігати її у своєму блокноті стільки, скільки ви думаєте, що вона вам може знадобитися. Ви відстежуєте, яку інформацію в зошиті ви використовуєте зараз, а яку інформацію ви часто використовуєте та яку інформацію ви не використовували певний час. Коли ви хочете зайняти місце, спершу стирайте інформацію, яку ви деякий час не використовували. Якщо у вас нічого з цього не залишилося, ви стираєте деяку інформацію, яку ви часто використовуєте, але не зараз. Тільки якщо ви справді відчайдушно використовуєте простір (можливо, є одна велика тема, яка займає весь зошит), ви видалите інформацію, яку ви використовуєте сьогодні.

Це саме те, що Android робить з вашою ОЗУ. Велика книжкова шафа з довідниками схожа на внутрішню пам’ять вашого телефону: ви не можете користуватися нею безпосередньо (оскільки книги друкуються, а не написані олівцем), тому для копіювання даних у ваш ноутбук дорого (це вимагає часу та енергії) ( ОЗП) для роботи над.

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

Думаючи про це таким чином, легко відповісти на ваше запитання. Використання більшої кількості оперативної пам'яті не використовує більше енергії безпосередньо. Додаток диспетчера завдань може змусити вас використовувати більше енергії, оскільки вам доведеться копіювати речі з внутрішньої пам’яті в оперативну пам’ять, чого б вам не довелося інакше. Таким же чином, один додаток, що голодує на оперативну пам'ять, коштує вам удвічі: спочатку ви повинні записати всю інформацію про цю програму в зошит, а потім, коли закінчите з цим, є багато інформації, яку вам довелося стерти (щоб зробити простір), який вам доведеться знову скопіювати з книжкової полиці.


2
Ха-ха, мені подобається аналогія (+1). (Хоча технічно, якщо ви щось пишете в блокнот, це буде важити трохи більше ... але я занадто критичний.) Щось ще слід зазначити для @MinNaingOo - це те, що якщо ви працюєте з диспетчером завдань, це Диспетчер завдань також використовує силові цикли (процесор AKA), щоб зробити те, що потрібно зробити. Отже ... більше акумулятора використовується.
JasCav

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

@James_pic Саме про це йде четвертий абзац. Я не хочу додатково вносити в нього GC програми, оскільки це велика тема, що стосується лише програмістів.
Dan Hulme

The only difference it makes is changing what the app shows you next time you launch it- Е-е, переважно правда, але не завжди. "Назад" говорить додатку: "добре, я закінчив", тому він може зробити додаткове очищення негайно. Я вбив свій план даних одного дня, коли випадково натиснув "Домашню" замість "Назад" з Карт Google - вона постійно оновлювалася на задньому плані.
Ізката

> Якщо вимкнути додаток зі списку "останніх програм", це не вбиває програму та не видаляє її з оперативної пам'яті. Це було змінено в останніх версіях Android. Дивіться , наприклад: code.google.com/p/android/issues/detail?id=63618
JIS

1

Як пояснено у статті, не має значення, скільки матеріалів завантажено в оперативну пам’ять, тому це цілком нормально, якщо ви не закриєте програми, що не працюють. Але якщо додаток постійно виконує якусь діяльність, наприклад синхронізування деяких даних або завантаження або навіть запис звуку, це зцілить ваш акумулятор, оскільки він використовує процесор, який висмоктує енергію з вашого акумулятора, і в цьому випадку закриття програм буде бути хорошою справою. В іншому випадку, якщо ви впевнені, що додаток не буде здійснювати постійну активність у фоновому режимі, то вам не слід турбуватися про збереження його в оперативній пам’яті, це точно так само, як зберігання файлів на SDCard (я маю на увазі SDCard не використовувати акумулятор, правда?). Тож просто розслабтесь :) Я думаю, що запуск храму не робить жодної діяльності на задньому плані, тому не хвилюйтеся залишати його в барі. Сподіваюся, я вам пояснив. Ура!


0

Існує велика різниця між iOS та Android. iOS заморожує додатки, Android - ні. Логіка, яку він пояснює у цій статті, не може бути застосована до Android, де деякі додатки розряджатимуть ваш акумулятор, перебуваючи у фоновому режимі. Якщо ви переймаєтесь цим, використовуйте щось на зразок Greenify замість вбивці завдання.


Які переваги заморожування програми?
Min Naing Oo

1
@MinNaingOo, "поганий" додаток, не може змусити користувача вважати, що батарея iPhone не працює. Тож перестане користувач звинувачувати яблуко.
Ян Рінроуз

1
@MinNaingOo Прочитайте це addictivetips.com/android/…
bluehallu

1
@Hallucynogenyc Я використовував Greenify на всіх своїх Android-пристроях, хоча я мало знав про його переваги. Дякую за посилання :)
Min Naing Oo

1
@MinNaingOo Читати цю stackoverflow.com/questions/11417837 / ...
bluehallu

0

Відповідаючи на запитання заголовка: "Чи можна використовувати занадто багато акумуляторної пам'яті?"
(Не ваше "справжнє" запитання, але можливо корисне для інших, хто цікавиться назвою питань.)

Так, коли додатки або сервіси, які намагаються запуститись, використовують занадто багато оперативної пам’яті, системі, можливо, доведеться вбивати деякі з них дуже часто, навіть кілька разів на секунду, і перезавантажувати їх незабаром, коли вони потребують чогось іншого.
Це використовує багато циклів процесора, а отже, і деяку ємність акумулятора.

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


-1

Оскільки основна оперативна пам'ять є динамічною (складається з капіталізаторів, які втрачають інформацію), вони повинні бути оновлені. Це оновлення вимагає живлення, і повний (або використаний) блок повинен зайняти більше енергії для «підзарядки», ніж один раз, що містить усі 0 або якось знає, що він не використовується.

Однак, якщо це дійсно помітно, це хтось із більшою кількістю ноу-хау з електроніки.

Я завжди помічав більшу витрату акумулятора на всіх комп’ютерах, коли використовується більше оперативної пам’яті, незалежно від рівня процесора, але тут повинні бути деякі інші фактори.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.