Що таке віртуальна оперативна пам’ять в Android і чи вам це важливо
Різне / / March 16, 2022
Окремо від величезні мегапікселі камери і дисплеї з високою частотою оновлення, найбільшою тенденцією у світі смартфонів, здається, є віртуальна RAM. Деякі називають це динамічним розширенням RAM, а інші називають розширеною RAM. Незалежно від того, як це називається, ідея залишається незмінною. Дозволяє користувачам використовувати частину свого сховища як оперативну пам’ять, щоб допомогти багатозадачності.
У цьому посібнику ми обговоримо, як працює управління пам’яттю в Android і чим ідея віртуальної оперативної пам’яті відрізняється від неї. Ми спробуємо поміркувати, чи потрібна віртуальна оперативна пам’ять на Android чи ні. Тож приступимо до цього.
Як працює управління пам'яттю на Android
Перш за все, важливо зрозуміти, як Android керує вашою пам’яттю. В Android є 3 типи пам’яті. Спочатку це ваша оперативна пам’ять, потім у вас є zRAM і, нарешті, ваша пам’ять. RAM є основним модулем пам'яті, всередині якого працюють усі програми. Тоді є ваша вбудована пам’ять, UFS або eMMC на бюджетних пристроях. Нарешті, у нас є zRAM. По суті, zRAM — це розділ всередині RAM.
Ідея zRAM полягає в тому, що дані з низьким пріоритетом в RAM стискаються і зберігаються всередині zRAM. Оскільки оперативна пам’ять на будь-який день працює швидше, ніж звичайне сховище, стиснення даних всередині zRAM, яке є частиною RAM, є це все одно буде швидшим, ніж доступ до нього з вашого сховища, навіть якщо ви порахуєте час стиснення та розпакування.
Тепер, коли ми встановили 3 різні типи пам’яті, доступні для Android, давайте зрозуміти, як ОС справляється з усім цим. Тому Android використовує методи пейджингу. Принцип його роботи полягає в тому, що оперативна пам’ять розбивається на сторінки, кожна з яких зазвичай має 4 КБ. Незалежно від того, чи ця сторінка безкоштовна чи активно використовується, вони об’єднуються для відображення використаної та невикористаної ОЗП відповідно. Тоді завдання ядра — перетворити використану пам’ять у вільну. Це робиться шляхом переміщення даних на тих сторінках, які використовуються, у ваше сховище.
Що таке пейджінг і як він працює
Щоб зрозуміти, як це працює, давайте розберемося з типами сторінок. Ви можете класифікувати сторінки на два типи – чисті та брудні сторінки. Чисті сторінки мають незмінену копію, збережену в пам’яті. У той же час на брудних сторінках зберігається змінена копія даних. Тепер, що це модифіковане та незмінене? Назвемо це динамічним використанням пам’яті.
Немодифіковані копії – це статичні дані, а модифіковані копії – це динамічні дані, які змінюються щосекунди. Android може очищати чисті сторінки, коли це необхідно, оскільки вони не мають динамічного доступу до ресурсів. Це допомагає звільнити оперативну пам’ять і зробити її доступною. Це може здатися занадто технічним, тому давайте спростимо розуміння за допомогою реальних програм.
Припустимо, ви відкриваєте Twitter, переглядаєте свою стрічку, а потім переключаєтеся на щось інше. Twitter все ще є у вашій RAM. Але якщо ви не відкриваєте його деякий час, його пріоритет зменшується. Пізніше, якщо ви запустите щось нове, Android доведеться звільнити пам’ять, яку використовує Twitter. Отже, що він робить, так це переміщує свої значення та дані в сховище і дає вам вільний простір. Ось чому, коли ви знову запустите Twitter, він спочатку покаже вам часову шкалу, на якій він перебував у сплячому режимі, а потім оновиться. Те саме стосується Facebook, Reddit або подібних додатків, таких як Калькулятор або Нотатки. Ці програми використовують чисті сторінки, оскільки копія їхніх даних статично зберігається у вашому сховищі.
Тепер для брудних сторінок розгляньте Spotify або будь-який музичний плеєр. Ви запускаєте музику в програвачі, а потім продовжуєте працювати у фоновому режимі, не відкриваючи програму. Однак система не може закрити його, оскільки він динамічно використовує вашу пам’ять. В результаті Android стискає програму та переміщує її в zRAM, коли потрібно більше вільної оперативної пам’яті.
Що таке віртуальна RAM
Тепер, коли ви знаєте, як Android керує пам’яттю, ви повинні задатися питанням – звідки входить функція віртуальної оперативної пам’яті? Пам’ятаєте, як ми говорили, що zRAM також є частиною оперативної пам’яті? Принцип роботи віртуальної оперативної пам’яті полягає в тому, що вона створює розділ підкачки у вашому просторі зберігання та використовує його як додаткову zRAM.
Оскільки zRAM зберігається лише у вашій RAM, існує обмеження на кількість сторінок, які ви можете стиснути та зберегти в ньому. За допомогою розділу підкачки ви можете використовувати місце для зберігання пам’яті як додаткову zRAM, для стиснення та переміщення додатків, залишаючи при цьому місце у фактичній оперативній пам’яті.
Чи нова ця функція
Отже, все це нове? Ну, не зовсім. Linux з самого початку використовує розділи підкачки. Для Android користувачі спеціального ядра використовували свої карти SD для створення додаткових розділів підкачки для покращення управління пам’яттю.
Таким чином, виробники брендів просто надають вам ту саму функцію, запечену в їхніх скінах Android. Однак виникає запитання – якщо ця функція настільки корисна, чому вона не була частиною вихідного коду Android?
Віртуальна оперативна пам’ять добре чи погано
Відповідь криється в самій базовій роботі самої віртуальної RAM. Незважаючи на те, що ця функція дозволяє запускати більше програм на вашому пристрої, стискаючи програми в режимі глибокого сну та переміщуючи їх у сховище, вона приносить більше шкоди, ніж користі. Оскільки розділи підкачки, по суті, зберігають активні програми, залучається більше відчуття читання та письма.
Це добре працює на традиційних сховищах, але флеш-пам’ять має обмежену кількість читань і записів. Таким чином, використовуючи SWAP або Virtual RAM, ви технічно скорочуєте термін служби сховища вашого пристрою.
Це також добре підкреслено Сторінка розробника Android. «На Android сховище не використовується для простору підкачки, як в інших реалізаціях Linux, оскільки часті записи можуть призводять до зношування цієї пам’яті та скорочують термін служби носія». Інший приклад цього – новий Apple M1 MacBook. Ці машини використовують розділ підкачки на SSD від Apple, на який користувачі скаржаться досить багато.
Чи має значення віртуальна оперативна пам’ять і чи варто її використовувати
По суті, все залежить від того, як ви визначаєте багатозадачність. Якщо він жонглює лише між двома-трьома активними додатками, то, звичайно, віртуальна оперативна пам’ять допомагає в цьому. Але якщо ви продовжуєте перемикатися між 5-6 сильно активними додатками, віртуальна оперативна пам’ять нічого не робитиме, тому що вона буде продовжувати зміщувати програми.
По суті, функція віртуальної оперативної пам’яті надає вам більше вільного місця для запуску програм. Однак це відбувається за рахунок вашого сховища. Якщо ви збираєтеся продовжувати використовувати свій пристрій більше двох років, ми вважаємо, що використання віртуальної RAM може не мати особливого сенсу.