Uganka o RAM-u: Koliko RAM-a v resnici potrebujemo?

Ko se naprave Android začnejo premikati proti 6 GB RAM-a, se moramo vprašati: Koliko RAM-a v resnici potrebujemo? Sledite nam, ko raziskujemo!

Pred kratkim smo bili deležni napovedi enega prvih pametnih telefonov z operacijskim sistemom Android s 6 GB RAM-a.

6 prekletih GB! To je veliko RAM-a v mobilni napravi.

Začetek igre številk je Vivo Xplay5 Elite. Vivo kot podjetje morda ni zelo dobro poznano zunaj Kitajske, vendar je podjetje v preteklosti izdelalo nekaj zelo tankih pametnih telefonov. Z Xplay5 Elite so poskušali vključiti veliko specifikacij v napravo, ki se želi uvrstiti med kralje.

Vivo Xplay 5 Elite ima dvojno ukrivljen 5,43-palčni zaslon QHD Super AMOLED na kovinskem okvirju za ohišje. V notranjosti je najnovejši Qualcomm Snapdragon 820 SoC s taktom 2,15 Ghz, Adreno 530 GPU, 6 GB LPDDR4 RAM-a in 128 GB nerazširljivega pomnilnika. Za kamero je zadnji senzor Sony IMX298 s 16 MP in f/2.0, sprednji pa 8 MP. Če upoštevamo te specifikacije in kovinsko zgradbo naprave, ne bi smelo biti presenečenje, da bi stala kar nekaj tudi za kitajskega potrošnika. S ceno 4.288 CNY (660 USD) je to zagotovo kitajski vodilni model in ne cenovno ugoden model srednjega razreda.

Vivo Xplay5 Elite trenutno ni edini pametni telefon s 6 GB RAM-a. Manj znani in novoustanovljeni kitajski proizvajalec originalne opreme, Vernee, želi potrošnikom zagotoviti večjo dostopnost do ogromnih količin RAM-a z lansiranjem naprave srednjega razreda, Vernee Apollo.

Vernee Apollo bo opremljen z MediaTekovim vrhunskim SoC Helio X20. Na voljo bo že omenjenih 6 GB RAM-a, 128 GB notranjega pomnilnika, zadnja kamera Sony IMX230 z 21 MP in 5,5-palčni zaslon 2K. Z vsem tem bi Apollo stal 399,99 $. Tiskovne informacije, ki so nam bile poslane, niso omenjale kitajske cene ali ciljnih trgov, zato je telefon še vedno precej skrivnosten.

Oba telefona nas prosita, da postavimo vprašanje, ali ne res potrebujejo toliko RAM-a trenutno?

Da bi odgovorili na to vprašanje, moramo razumeti, kako Android obravnava upravljanje pomnilnika in RAM-a. Mishaal je opravil fantastično delo pri razlagi zapletenosti Androidovega upravljanja pomnilnika v prejšnji članek, ki šest mesecev kasneje še vedno ohranja svojo aktualnost.

"Način, na katerega Android upravlja upravljanje pomnilnika, je takšen: namesto da bi takoj ukinil vsak proces po koncu njegove dejavnosti (npr ko pritisnete gumb Domov za izhod iz aplikacije), se postopek hrani v pomnilniku, dokler ga sistem ne mora zaustaviti, da sprosti več pomnilnika. Kako se sistem odloči, katere procese obdržati in katere uničiti? Gonilnik LMK (Low Memory Killer). Storitev ActivityManager vsakemu procesu dodeli vrednost oom_adj v razponu od -17 do 15, ki dinamično prilagaja vrednost oom_adj glede na pomembnost procesa. Višje vrednosti oom_adj pomenijo večjo verjetnost, da bo proces ukinjen zaradi sprostitve pomnilnika, medtem ko nižje vrednosti pomenijo, da je manj verjetno, da bo proces ustavljen."

"Android razvrsti vsak proces v pet kategorij (Ospredje, Vidno, Storitev, Ozadje in Prazno), ki segajo od najbolj pomembnega do najmanj pomembnega za nadaljevanje delovanja. Procesi, ki pripadajo vsaki kategoriji, so uničeni na različnih ravneh preostalega prostega pomnilnika (imenovano vrednost LMK minfree). Na primer, če so vrednosti LMK minfree vaše naprave nastavljene na »2560,4090,6144,7168,8192« (navedene kot 4k strani, ki jih je mogoče prebrati iz /sys/module/lowmemorykiller/parameters/minfree), potem vaša naprava uniči procese, opredeljene kot »prazno«, ko vaš prosti pomnilnik pade pod 32 MB, procese, opredeljene kot »ozadje«, ko je prosti pomnilnik pod 28 MB, in aplikacije v ospredju, ko prosti pomnilnik pade pod 10 MB (nebesa obvaruj!) Te minfree vrednosti danes niso značilne za večino naprav, saj jih proizvajalci radi prilagajajo po svojih željah glede na to, kako se jim zdi, da najbolj ustreza njihovi napravi. Toda iz te kratke razlage bi morali vzeti to, da več kot imate prostega pomnilnika, manjša je verjetnost, da bodo kritični procesi uničeni."

Kot omenja Mishaal, se dejanske vrednosti razlikujejo od proizvajalca originalne opreme do proizvajalca originalne opreme, tako da lahko imate različne izkušnje z večopravilnostjo na različnih telefonih s podobnimi specifikacijami. Druga spremenljivka v mešanici je količina bloatware-a na napravi. Močno spremenjeni uporabniški vmesniki Android, kot je TouchWiz, običajno vsebujejo veliko funkcij poleg Androida, ki temeljijo na zalogi AOSP in kot tak zahteva veliko več virov, ki jih je treba dodeliti sistemu, da deluje na ravni, ki jo je želel OEM to za. To pušča manj prostora za aplikacije tretjih oseb, da se shranijo v predpomnilnik, kar posledično poslabšuje ubijanje nizkega pomnilnika.

Večinoma Mehko

"Glavna razlika med napravo z 2 GB RAM-a in napravo s 3 GB RAM-a je, da naprava s 3 GB RAM-a bi moral imeti možnost predpomniti več procesov v ozadju, ne da bi sprožil gonilnik LMK, da bi ga uničil."

Torej bi teoretično moralo več RAM-a, ki je na voljo na ravni strojne opreme, voditi do več procesov, ki ostanejo predpomnjeni na ravni OS, in do večjega bazena, iz katerega lahko sodeluje OEM. Toda pogosteje kot ne, tudi v napravah z 2 GB RAM-a vidite veliko več prostega RAM-a, tudi potem ko so sistem in aplikacije zaklenili tisto, kar potrebujejo. Tukaj je ista galerija iz Mishaalove objave, ki primerja prosti RAM v različnih napravah:

Kot lahko vidite, imajo naprave z najlažjimi uporabniškimi vmesniki, kot sta Nexus 5 in Nexus 6, največji delež prostega RAM-a, ki je na voljo v napravi. Tudi najtežji od vseh, Samsung Galaxy Note 5 s 4 GB RAM-a in TouchWizom za zagon, ima približno 1,7 GB RAM-a, ki je na voljo za predpomnjenje aplikacij. Tudi s tako velikim naborom prostega RAM-a je imel Note 5 težave z večopravilnostjo, kjer se je naprava zatekla k agresivnemu ravnanju s pomnilnikom. To je bilo zaradi izbire OEM vrednosti LMK: črpanje več RAM-a na ravni strojne opreme ne bo pomagalo! Popravek za opombo 5 za izboljšanje večopravilnosti je dejansko vključeval prilagoditev teh vrednosti LMK, da bi bile bolj prijaznejše do večopravilnosti kot Samsungove nastavitve zalog, kar je ironično za napravo, ki se osredotoča na produktivnost. Kot taka samo z več RAM-a naprava ne bo samodejno postala bolj prijazna večopravilnosti.

Če se znova vrnemo v galerijo, je del prikazanega prostega RAM-a že uporabljen za predpomnjenje procesov aplikacij, vendar del tega ostane dejansko nedejaven in ne dela ničesar. Tukaj je nekaj posnetkov zaslona iz mojega OnePlus One, ki prikazujejo prikazani prosti RAM in nato razdelitev na predpomnjeni RAM in nedejavni RAM:

Celo v majhnem ~1-sekundnem primeru, ko sem zamenjal aktivno igro in izbral možnost prikaza predpomnjenih procesov, je sistem zmanjšal dejansko uporabljen RAM. To se je zgodilo, ker je imela igra, v tem primeru NFS No Limits, spremembo prioritete, ki je prešla iz procesa v ospredju v proces v ozadju. To je bilo narejeno z namenom, da OS ves čas nemoteno teče, saj se je RAM med aktivno uporabo spremenil z 2,5 GB na 1,9 GB, medtem ko je bil proces igre NFS No Limits shranjen v predpomnilniku. Ker je igra spremenila svojo prioriteto, jo je zdaj mogoče uničiti, če OS dejansko potrebuje več prostega RAM-a. Interakcija uporabnika tukaj ni potrebna.

Bistvo tega primera je bilo poudariti, kako se je Androidovo upravljanje pomnilnika razvilo v učinkovitejše pri določanju prioritet sistema in vseh njegovih procesov. Obstaja le toliko aplikacij, ki bodo kadar koli ostale predpomnjene: operacijski sistem idealno ne uporablja celotnega prostega RAM-a v procesih predpomnjenja. Del prostega RAM-a ostane v stanju mirovanja. To je zasnovano za primere, ko mora proces zelo hitro povečati uporabo RAM-a.

Obstaja tudi zgornja meja dodeljevanja RAM-a za procese aplikacij, kot je določil proizvajalec originalne opreme za posamezne telefone. Po mnenju an stara objava za razpravo Dianne Hackborn, inženirka ogrodja Android, obstaja omejitev na Java kopica kjer se bodo nahajali objekti Java, preden se začne zbiranje smeti, vendar je tudi to mogoče razširiti s pametno uporabo NDK. Preprosto povedano, to pomeni, da obstaja največja omejitev RAM-a, ki je bila na voljo kateri koli aplikaciji, ki se je želela izvajati v tej napravi. Pri starejših napravah je bila ta kopica nastavljena na 24 MB, pri novejših napravah pa se je velikost povečala zaradi povečanja RAM-a v napravah in povečanih zahtev glede strojne opreme. Androidov Dokument z opredelitvijo združljivosti za Android 6.0 omenja (razdelek 3.7) minimalne vrednosti, ki jih mora proizvajalec originalne opreme nastaviti za te kupe. Za primerjavo, moj OnePlus One na CM12.1 se ponaša z omejitvijo 192 MB za običajne kopice Dalvik VM in omogoča kar 512 MB za aplikacije, ki v manifestu aplikacije določajo android: largeHeap=true. Teoretično lahko posamezna aplikacija uporablja samo do 512 MB RAM-a v moji napravi. Poleg tega se bo sprožilo zbiranje smeti, da bodo ostali potrebni sistemski procesi ostali nemoteni.

Zdaj združite omejitev velikosti kopice za aplikacije z vrednostmi LMK, ki so jim dodeljene na podlagi njihove prioritete in OS vztraja, da pusti določeno količino prostega RAM-a v stanju mirovanja, in lahko si predstavljate, kako Androidova večopravilnost dela. To je zapleten mehanizem, ki vključuje veliko spremenljivk med strojno opremo, programsko opremo in samo aplikacijo; fino nastavljen tako, da omogoča delovanje celo najosnovnejših naprav, hkrati pa še vedno omogoča najboljšim vodilnim, da teoretično popolnoma izkoristijo svoj potencial. Praktično to ni popoln svet, zato se nič od tega ne zgodi. To pomeni, da ni nobenega zagotovila, da bo naprava s 4 GB RAM-a delovala enako kot druga naprava s 4 GB RAM-a. Prav tako ne pomeni, da vam bo dodaten GB RAM-a nad določenim pragom neposredno sorazmerno povečal večopravilnost in ravnanje s pomnilnikom.

Praktično in prihodnost

Torej, če se vrnem k prvotnemu vprašanju, ali res potrebujete 6 GB RAM-a v svojih napravah v začetku leta 2016? Zame je odgovor ne.

Večina naprav, ki jih imam, ima 3 GB RAM-a LPDDR3, ena pa ima 4 GB RAM-a. In preprosto ni opazne razlike v zmogljivosti, ko gre za večopravilnost. Tukaj je predstavitev večopravilnosti iz mojega nedavnega pregleda OnePlus X, naprave s 3 GB RAM-a in ROM-a, ki je blizu osnovnemu Androidu:

Naprava ni imela težav pri preklapljanju med 12 aplikacijami (13, če štejete aktivni snemalnik zaslona), ne da bi morali uničiti katero koli od teh aplikacij. Ni bilo ponovnega nalaganja in ponovnega risanja in ta izkušnja ostaja presenetljivo dosledna med vsakodnevno uporabo brez ponovnih zagonov ali ročnega uničenja aplikacij. Običajnemu potrošniku preprosto ni treba aktivno preklapljati med temi številnimi aplikacijami med praktično uporabo!

Kaj pa, če uporabnik namesto tega želi preklapljati med temi številnimi igrami? Strinjamo se, zgoraj omenjeni dejavniki bi prišli v poštev, da bi v najboljšem primeru omogočili preklapljanje med le nekaj igrami. V takem stanju bi naprava z več fizičnega pomnilnika RAM omogočila pasivno shranjevanje več iger v pomnilnik. Toda kontrapunkt te prednosti je, da se veliko iger med večopravilnostjo pogosto znova naloži! Njihov namen je preprečiti, da bi mehanizmi za goljufanje manipulirali s podatki o igri, medtem ko igra teče, zato vnovično nalaganje/ponovna sinhronizacija/osvežitev prisili preverjanja celovitosti, da se ponovno vključijo v igro. Njihov namen je drugačen, vendar je zaradi tega veliko iger slabih kandidatov za večopravilnost.

Obstaja še nekaj dejavnikov, ki bi vam preprečili, da bi izkoristili vse prednosti tega veličastnega RAM-a. Če najdete opravilo/več opravil skupaj, ki zahtevajo vseh 6 GB LPDDR4 RAM-a vaše naprave, bi imeli veliko večje ozko grlo v obliki mobilnega SoC. Res je, da sta Snapdragon 820 in Helio X20 morda vodilna procesorja svojih podjetij, vendar sta še vedno mobilni SoC. Kot taki imajo druge omejitve, kot so proizvodnja toplote, odvajanje toplote, toplotno dušenje in baterija življenja, zaradi česar bi bili slaba izbira za opravila, ki so dovolj intenzivna, da bi za daljše obdobje porabila toliko RAM-a. čas. V takih primerih je bolje, da uporabite sistem, ki ni namenjen držanju v roki; tisti, ki ima bolj liberalne omejitve toplote, ki jo lahko proizvede, in moči, ki jo lahko porabi.

Na koncu dneva, ne glede na to, koliko prostega RAM-a imate, bodo aplikacije še vedno izločene. Tako pač deluje upravljanje pomnilnika. Še vedno obstajajo prednosti povečanja RAM-a, na primer nadaljnje povečanje velikosti kopice napajanje sredstev bitne slike na zaslonih z višjo ločljivostjo, kar nam omogoča, da presežemo ločljivosti QHD na naših napravah. Povečana velikost kopice kot trend na celotnem trgu bo vodila do aplikacij, ki si lahko prizadevajo narediti več. Razen če je RAM zaklenjen kot nedotakljiv, bo zanj vedno obstajala kakšna ali drugačna uporaba. Toda glede na to, da se zasloni na vodilnih modelih navidezno gibljejo med 1080p in 1440p, bomo morda videli 4 GB kot razumen standard še leto ali dve.

Za zaključek si odgovorimo na vprašanje: ali imamo res potrebujejo toliko RAM-a trenutno? Ne, nimamo. Za naprave, pri katerih je cena eden od dejavnikov, ki jih morajo ohraniti nizke, bi jim 3 GB ali 4 GB RAM-a zadostovalo. Za vodilne modele s povpraševanjem uporabnikov, ki jim ni toliko mar za cene, ne bi škodilo dokazovanju v prihodnosti. Kot stranka si zapomnite, da še ne boste uporabljali vsega tega RAM-a.

Kakšno je vaše mnenje o telefonih s 6 GB RAM-a? Sporočite nam svoje misli v spodnjih komentarjih!