Mis on Androidi virtuaalne RAM ja kas see peaks teid huvitama
Miscellanea / / March 16, 2022
Välja arvatud tohutu kaamera megapikslit ja suure värskendussagedusega kuvad, tundub nutitelefonimaailma suurim trend olevat Virtual RAM. Mõned nimetavad seda dünaamilise RAM-i laiendamiseks, teised aga laiendatud RAM-iks. Sõltumata sellest, kuidas seda nimetatakse, jääb idee samaks. Lubage kasutajatel kasutada osa oma salvestusruumist RAM-ina, et aidata multitegumtööd teha.
Selles juhendis käsitleme seda, kuidas mäluhaldus Androidis töötab ja kuidas virtuaalse RAM-i idee sellest erineb. Proovime mõelda, kas virtuaalset RAM-i on Androidis üldse vaja või mitte. Nii et asume asja juurde.
Kuidas mäluhaldus Androidis töötab
Esiteks on oluline mõista, kuidas Android teie mälu haldab. Androidis on kolme tüüpi mälu. Esiteks on teie RAM, seejärel zRAM ja lõpuks teie salvestusruum. RAM on põhimälumoodul, milles kõik rakendused töötavad. Siis on teie pardal olevad salvestusruumid, kas UFS või eMMC eelarveseadmetes. Lõpuks on meil zRAM. Põhimõtteliselt on zRAM RAM-i sees olev partitsioon.
zRAM-i idee seisneb selles, et RAM-i madala prioriteediga andmed tihendatakse ja salvestatakse zRAM-i. Kuna RAM on iga päev kiirem kui teie tavaline salvestusruum, on tihendatud andmed zRAM-is, mis on RAM-i osa. see on siiski kiirem kui sellele oma salvestusruumist juurdepääs, isegi kui arvestada tihendamise ja lahtipakkimise aegu.
Nüüd, kui oleme loonud Androidile saadaolevad 3 erinevat tüüpi mälu, mõistame, kuidas OS seda kõike käsitleb. Nii et Android kasutab otsingutehnikaid. See toimib nii, et RAM on jagatud lehtedeks, kus iga leht on tavaliselt 4KB. Olenemata sellest, kas see leht on tasuta või aktiivselt kasutatav, näitavad need vastavalt kasutatud RAM-i ja kasutamata RAM-i. Seejärel on kerneli ülesanne teisendada kasutatud mälu vabaks mäluks. See teeb seda, nihutades nende kasutatud lehtede andmed teie salvestusruumi.
Mis on piipar ja kuidas see töötab
Et mõista, kuidas see töötab, mõistkem lehtede tüüpe. Lehed saab liigitada kahte tüüpi – puhtad ja määrdunud lehed. Puhastel lehtedel on salvestusruumi salvestatud muutmata koopia. Samal ajal on määrdunud lehtedel salvestatud andmete muudetud koopiad. Mis see muudetud ja muutmata on? Nimetagem seda teie mälu dünaamiliseks kasutamiseks.
Muutmata koopiad on staatilised andmed, samas kui muudetud koopiad on dünaamilised andmed, mida muudetakse iga sekundi järel. Android saab vajadusel puhtad lehed tühjendada, kuna need ei pääse ressurssidele dünaamiliselt juurde. See aitab vabastada RAM-i ja muuta seda rohkem kättesaadavaks. See võib tunduda liiga tehniline, nii et tehkem seda lihtsamaks, et mõista reaalmaailma rakendusi.
Oletame, et avate Twitteri, sirvite oma voogu ja lülitute seejärel millelegi muule. Twitter on teie RAM-is endiselt olemas. Kuid kui te seda mõnda aega ei ava, väheneb selle prioriteet. Hiljem, kui käivitate midagi uut, peab Android vabastama Twitteri kasutatava mälu. Nii et see nihutab oma väärtused ja andmed salvestusruumi ning annab teile vaba ruumi. Seetõttu kuvatakse Twitteri uuesti käivitamisel esmalt ajaskaala, mille ajal see talveunestus oli, ja seejärel värskendatakse. Sama kehtib Facebooki, Redditi või sarnaste rakenduste kohta, nagu kalkulaator või märkmed. Need rakendused kasutavad puhastuslehti, kuna nende andmete koopia salvestatakse staatiliselt teie salvestusruumi.
Nüüd määrdunud lehtede jaoks kaaluge Spotify või mis tahes muusikapleieri kasutamist. Käivitage pleieris muusikat ja jätkate seda taustal ilma rakendust avamata. Süsteem ei saa seda aga sulgeda, kuna see kasutab dünaamiliselt teie mälu. Selle tulemusel tihendab Android rakenduse ja nihutab selle zRAM-ile, kui on vaja rohkem vaba RAM-i.
Mis on virtuaalne RAM
Nüüd, kui teate, kuidas Android mälu haldab, peate mõtlema – kuhu tuleb virtuaalse RAM-i funktsioon? Kas mäletate, kuidas me ütlesime, et zRAM on ka RAM-i osa? Virtuaalne RAM töötab nii, et see loob teie salvestusruumile vahetuspartitsiooni ja kasutab seda täiendava zRAM-ina.
Kuna zRAM-i salvestatakse ainult teie RAM-i, on tihendatavate ja sellesse salvestatavate lehtede arv piiratud. Vahetuspartitsiooniga saate kasutada oma salvestusruumi täiendava zRAM-ina, rakenduste tihendamiseks ja nihutamiseks, tehes samal ajal vaba ruumi tegelikus RAM-is.
Kas see funktsioon on uus
Niisiis, kas see kõik on uus? No tegelikult mitte. Linux on algusest peale kasutanud vahetussektsioone. Androidi puhul on kohandatud kerneli kasutajad kasutanud oma SD-kaarte täiendavate vahetussektsioonide loomiseks, et parandada mäluhaldust.
Sellisena pakuvad bränditootjad teile sama funktsiooni, mis on küpsetatud nende Android-kesta sees. Siiski tekitab see küsimuse – kui see funktsioon on nii kasulik, siis miks pole see olnud Androidi lähtekoodi osa?
Kas virtuaalne RAM on hea või halb
Vastus peitub virtuaalse RAM-i enda põhitöös. Kuigi see funktsioon võimaldab teil käivitada oma seadmes rohkem rakendusi, tihendades talveunerežiimis olevaid rakendusi ja teisaldades need salvestusruumi, teeb see rohkem kahju kui kasu. Kuna vahetuspartitsioonid salvestavad sisuliselt aktiivseid rakendusi, on sellega kaasas suurem lugemis- ja kirjutamistunne.
See töötab traditsioonilisel salvestusruumil hästi, kuid välkmälus on piiratud arv lugemis- ja kirjutamisvõimalusi. Seega, kasutades SWAP-i või virtuaalset RAM-i, lühendate tehniliselt oma seadme salvestusruumi eluiga.
See on ka hästi esile tõstetud Androidi arendaja leht. „Androidis ei kasutata salvestusruumi vahetusruumi jaoks, nagu seda kasutatakse teiste Linuxi rakenduste puhul, kuna sagedane kirjutamine võib seda teha põhjustada selle mälu kulumist ja lühendada andmekandja eluiga. Teine näide selle kohta on uues Apple M1-s MacBookid. Need masinad kasutavad Apple'i SSD-del vahetuspartitsiooni, mille pärast kasutajad on üsna palju kurtnud.
Kas virtuaalne RAM on oluline ja kas peaksite seda kasutama?
Põhimõtteliselt sõltub kõik sellest, kuidas määratlete multitegumtöö. Kui see žongleerib vaid kahe kuni kolme aktiivse rakenduse vahel, aitab virtuaalne RAM selles kindlasti. Kuid kui vahetate pidevalt 5–6 tugevalt aktiivse rakenduse vahel, ei tee virtuaalne RAM midagi, kuna see muudaks rakendusi pidevalt ümber.
Põhimõtteliselt võimaldab virtuaalse RAM-i funktsioon rakenduste jaoks rohkem RAM-i ruumi. See tuleb aga teie ladustamise hinnaga. Kui kavatsete oma seadet kasutada kauem kui kaks aastat, arvame, et virtuaalse RAM-i kasutamine ei pruugi olla mõttekas.