Kako Android uređaji počinju prelaziti na 6 GB RAM-a, moramo se zapitati: Koliko RAM-a nam stvarno treba? Pratite nas dok istražujemo!
Nedavno smo bili počašćeni najavama jednog od prvih pametnih telefona s Androidom koji dolazi sa 6 GB RAM-a.
6 jebenih GB! To je puno RAM-a u mobilnom uređaju.
Pokretanje igre brojeva je Vivo Xplay5 Elite. Vivo kao tvrtka možda nije jako poznata izvan Kine, ali kompanija je, svaka čast, napravila neke stvarno tanke pametne telefone u prošlosti. S Xplay5 Eliteom pokušali su uklopiti mnoge specifikacije u uređaj koji želi stajati među kraljevima.
Vivo Xplay 5 Elite ima dvostruko zakrivljeni 5,43" QHD Super AMOLED zaslon na metalnom okviru za tijelo. Unutra se nalazi najnoviji Qualcomm Snapdragon 820 SoC na 2,15 Ghz, Adreno 530 GPU, 6 GB LPDDR4 RAM-a i 128 GB neproširive memorije. Što se kamere tiče, stražnja je Sony IMX298 senzor od 16 MP s f/2.0, a prednja kamera od 8 MP. Imajući na umu ove specifikacije i metalnu konstrukciju uređaja, ne bi trebalo biti iznenađenje da bi koštao poprilično čak i za kineske potrošače. S cijenom od 4288 CNY (660 USD), ovo je svakako kineski vodeći model, a ne pristupačan model srednjeg ranga.
Vivo Xplay5 Elite trenutno nije jedini pametni telefon sa 6 GB RAM-a. Manje poznati i novoosnovani kineski proizvođač originalne opreme, Vernee, ima za cilj omogućiti potrošačima veću dostupnost golemim količinama RAM-a lansiranjem uređaja srednjeg ranga, Vernee Apollo.
Vernee Apollo dolazi s MediaTekovim vrhunskim SoC-om, Helio X20. Tu će biti spomenutih 6 GB RAM-a, 128 GB interne memorije, stražnja kamera Sony IMX230 od 21 MP i 5,5" 2K zaslon. Uz sve to, Apollo bi koštao 399,99 dolara. Tiskovne informacije koje su nam poslane ne spominju kinesku cijenu ili ciljana tržišta, tako da je telefon još uvijek prilično misteriozan.
Oba ova telefona nas mole da postavimo pitanje, zar ne? stvarno treba toliko RAM-a trenutno?
Da bismo odgovorili na ovo pitanje, moramo razumjeti kako Android upravlja upravljanjem memorijom i RAM-om. Mishaal je napravio fantastičan posao u objašnjavanju zamršenosti Androidovog upravljanja memorijom prethodni članak, koji još uvijek održava svoju relevantnost šest mjeseci kasnije.
"Način na koji Android upravlja upravljanjem memorijom je sljedeći: umjesto da odmah ugasi svaki proces nakon završetka njegove aktivnosti (kao kada pritisnete početni gumb za izlaz iz aplikacije), proces se čuva u memoriji sve dok ga sustav ne treba prekinuti da oslobodi više memorije. Kako sustav odlučuje koje procese zadržati, a koje prekinuti? LMK (Low Memory Killer) upravljački program. Usluga ActivityManager svakom procesu dodjeljuje vrijednost oom_adj u rasponu od -17 do 15, koja dinamički prilagođava vrijednost oom_adj ovisno o važnosti procesa. Više vrijednosti oom_adj znače da je veća vjerojatnost da će proces biti prekinut radi oslobađanja memorije, dok niže vrijednosti znače da je manja vjerojatnost da će proces biti prekinut."
"Android kategorizira svaki proces u pet kategorija (prednji plan, vidljiv, usluga, pozadina i prazan) u rasponu od najvažnijeg do najmanje važnog za nastavak rada. Procesi koji pripadaju svakoj kategoriji se gase na različitim razinama preostale slobodne memorije (zvane LMK minfree vrijednost). Na primjer, ako su vrijednosti LMK minfree vašeg uređaja postavljene na "2560,4090,6144,7168,8192" (navedene kao 4k stranice, koje se mogu čitati iz /sys/module/lowmemorykiller/parameters/minfree), tada vaš uređaj ugasit će procese definirane kao "prazne" kada vaša slobodna memorija padne ispod 32 MB, procese definirane kao "pozadinu" kada je slobodna memorija ispod 28 MB i aplikacije u prvom planu kada slobodna memorija padne ispod 10 MB (nebesa sačuvaj!) Ove minfree vrijednosti nisu tipične za većinu uređaja ovih dana jer ih proizvođači vole podešavati prema svojim željama ovisno o tome kako smatraju da najbolje odgovara njihovom uređaju. Ali ono što biste trebali izvući iz ovog kratkog objašnjenja je da što više slobodne memorije imate, to je manja vjerojatnost da će se kritični procesi ugasiti."
Kao što Mishaal spominje, stvarne vrijednosti variraju od OEM-a do OEM-a, tako da možete imati različita iskustva s višezadaćnim radom na različitim telefonima sa sličnim specifikacijama. Još jedna varijabla u kombinaciji je količina bloatwarea na uređaju. Jako modificirani Android UX-ovi kao što je TouchWiz imaju tendenciju upakirati puno značajki iznad Androida na temelju zaliha AOSP, i kao takav, zahtijeva puno više resursa koji se trebaju dodijeliti sustavu kako bi funkcionirao na razini koju OEM želi to za. To ostavlja manje prostora za predmemoriranje aplikacija trećih strana, što pak otežava gubitak memorije.
Uglavnom Meko
"Glavna razlika između uređaja s 2 GB RAM-a i uređaja s 3 GB RAM-a je u tome što uređaj s 3 GB RAM-a trebao bi moći predmemorirati više procesa u pozadini bez pokretanja LMK upravljačkog programa da ga ugasi."
Dakle, teoretski, više RAM-a dostupnog na razini hardvera trebalo bi dovesti do toga da više procesa ostane u predmemoriji na razini OS-a i većeg skupa iz kojeg OEM može sudjelovati. Ali češće nego ne, čak i na uređajima s 2 GB RAM-a, vidite puno više slobodnog RAM-a čak i nakon što su sustav i aplikacije zaključali ono što im je potrebno. Evo iste galerije iz Mishaalove objave, uspoređujući besplatni RAM na različitim uređajima:
Kao što vidite, uređaji s najlakšim korisničkim sučeljem, poput Nexusa 5 i Nexusa 6, imaju najveći udio slobodnog RAM-a dostupnog na uređaju. Čak i najteži od svih, Samsung Galaxy Note 5 s 4 GB RAM-a i TouchWizom za pokretanje, ima oko 1,7 GB RAM-a koji je dostupan za predmemoriju aplikacija. Čak i s tako velikim fondom slobodnog RAM-a, Note 5 je patio od problema s multitaskingom gdje bi uređaj pribjegavao agresivnom rukovanju memorijom. To je bilo zbog OEM-ovog izbora LMK vrijednosti: pumpanje više RAM-a na hardverskoj razini neće pomoći! Popravak za Note 5 za poboljšanje multitaskinga zapravo je uključivao podešavanje ovih LMK vrijednosti kako bi bile više prilagođen višezadaćnosti nego Samsungove postavke dionica, što je ironično za uređaj koji se fokusirao na produktivnost. Kao takvo, samo više RAM-a neće uređaj automatski učiniti više prilagođenim multitaskingu.
Vraćajući se ponovno na galeriju, dio prikazanog slobodnog RAM-a već se koristi za predmemoriju procesa aplikacije, ali dio toga zapravo ostaje u stanju mirovanja i ne radi ništa. Evo nekoliko snimaka zaslona s mog OnePlus One koji prikazuju prikazanu slobodnu RAM memoriju, a zatim rastavljanje na predmemoriranu RAM memoriju i RAM memoriju u stanju mirovanja:
Čak iu maloj instanci od ~1 sekunde koja mi je bila potrebna da izađem iz aktivne igre i odaberem opciju za prikaz procesa u predmemoriji, sustav je smanjio stvarni korišteni RAM. To se dogodilo jer je igra, u ovom slučaju NFS No Limits, imala promjenu prioriteta, prelazeći s procesa u prvom planu na proces u pozadini. To je učinjeno s ciljem da OS stalno teče glatko, budući da se RAM pod aktivnom upotrebom promijenio s 2,5 GB na 1,9 GB, dok je proces igre NFS No Limits bio predmemoriran. Kako je igra promijenila svoj prioritet, sada ju je moguće ubiti ako OS stvarno treba više slobodnog RAM-a. Ovdje nije potrebna interakcija korisnika.
Poanta ovog primjera bila je istaknuti kako se Androidovo upravljanje memorijom razvilo kako bi bilo učinkovitije u određivanju prioriteta sustava i svih njegovih procesa. Postoji samo toliko mnogo aplikacija koje će uvijek ostati u predmemoriji: OS idealno ne koristi cijeli slobodni RAM u procesima predmemoriranja. Dio slobodnog RAM-a ostaje u stanju mirovanja. Ovo je dizajnirano za slučajeve kada proces može vrlo brzo morati povećati svoju upotrebu RAM-a.
Postoji ograničenje raspodjele RAM-a i za procese aplikacija, kako je opet definirao OEM za pojedinačne telefone. Prema an stari post za raspravu Dianne Hackborn, Android Framework Engineer, postoji ograničenje na Java gomila gdje će se nalaziti java objekti prije pokretanja skupljanja smeća, ali čak se i to može proširiti pametnom upotrebom NDK. Jednostavnim riječima, to znači da postoji maksimalna granica RAM-a koja je bila dostupna bilo kojoj aplikaciji koja se htjela pokrenuti na tom uređaju. Za starije uređaje ta je hrpa postavljena na 24 MB, ali na novijim uređajima veličina je povećana zahvaljujući povećanju RAM-a u uređajima kao i povećanim hardverskim zahtjevima. Androida Dokument s definicijom kompatibilnosti za Android 6.0 spominje (odjeljak 3.7) minimalne vrijednosti koje OEM treba postaviti za te hrpe. Za usporedbu, moj OnePlus One na CM12.1 može se pohvaliti ograničenjem od 192 MB za normalne Dalvik VM gomile i dopušta čak 512 MB za aplikacije koje specificiraju android: largeHeap=true u manifestu svoje aplikacije. Teoretski, jedna aplikacija može koristiti samo do 512 MB RAM-a na mom uređaju. Osim toga, pokrenut će se sakupljanje smeća kako bi ostali potrebni sistemski procesi nesmetano tekli.
Sada kombinirajte ograničenje veličine gomile za aplikacije s LMK vrijednostima koje su im dodijeljene na temelju njihovog prioriteta i Inzistiranje OS-a da zadrži određenu količinu slobodnog RAM-a u stanju mirovanja, a možete zamisliti kako Androidova višezadaćnost djela. To je složen mehanizam koji uključuje puno varijabli između hardvera, softvera i same aplikacije; fino podešen kako bi omogućio čak i najosnovnijim uređajima da rade, dok još uvijek dopušta najboljim vodećim brodovima da iskoriste apsolutnu prednost svog potencijala, teoretski. Praktično, ovo nije savršen svijet, pa se ni jedno ni drugo ne događa. To znači da nema jamstva da će uređaj s 4 GB RAM-a raditi jednako kao drugi s 4 GB RAM-a. To također ne znači da će vam dodatni GB RAM-a iznad određenog praga dati izravno proporcionalno povećanje multitaskinga i rukovanja memorijom.
Praktično i budućnost
Dakle, vraćajući se na izvorno pitanje, trebate li stvarno 6 GB RAM-a u svojim uređajima početkom 2016.? Za mene je odgovor ne.
Većina uređaja koje posjedujem ima 3 GB LPDDR3 RAM-a, a jedan ima 4 GB RAM-a. I jednostavno nema primjetne razlike u performansama kada je multitasking u pitanju. Evo demonstracije višezadaćnosti iz moje nedavne recenzije OnePlus X, uređaja s 3 GB RAM-a i bliskim standardnom Android ROM-u:
Uređaj nije imao problema s prebacivanjem između 12 aplikacija (13 ako računate aktivni snimač zaslona) bez potrebe za ukidanjem bilo koje od tih aplikacija. Nije bilo ponovnog učitavanja i crtanja, a ovo iskustvo ostaje iznenađujuće dosljedno tijekom svakodnevne upotrebe bez ikakvih ponovnih pokretanja ili ručnog zatvaranja aplikacija. Normalan potrošač jednostavno nema potrebe za aktivnim prebacivanjem između ovih mnogih aplikacija tijekom praktične uporabe!
Ali što ako se korisnik umjesto toga želi prebacivati između ovih mnogih igara? Dogovoreno, gore spomenuti čimbenici bi ušli u igru kako bi se u najboljem slučaju omogućilo prebacivanje između samo nekoliko igara. U takvom stanju, više fizičkog RAM-a omogućilo bi uređaju da drži više igara pasivno u memoriji. Ali kontrapunkt ovoj prednosti je da se mnoge igre često ponovno učitavaju nakon multitaskinga! Njihova je namjera izbjeći mehanizme za varanje u manipuliranju podacima igre dok je igra pokrenuta, tako da ponovno učitavanje/ponovno sinkroniziranje/osvježavanje prisiljava provjere integriteta da ponovno uđu u igru. Njihova je namjera drugačija, ali to mnoge igre čini lošim kandidatima za multitasking.
Postoje još neki čimbenici koji bi vas spriječili da iskoristite sav taj veličanstveni RAM. Ako pronađete zadatak/nekoliko zadataka u kombinaciji koji zahtijevaju svih 6 GB LPDDR4 RAM-a vašeg uređaja, imali biste puno veće usko grlo u obliku mobilnog SoC-a. Doduše, Snapdragon 820 i Helio X20 mogu biti vodeći procesori svojih kompanija, ali su još uvijek mobilni SoC-ovi. Kao takvi, imaju druga ograničenja kao što su stvaranje topline, rasipanje topline, toplinsko prigušivanje i baterija života što bi ih učinilo lošim izborom za zadatke koji su dovoljno intenzivni da koriste toliko RAM-a tijekom duljeg razdoblja vrijeme. U takvim slučajevima, bolje je koristiti sustav koji nije namijenjen za držanje u ruci; onaj koji ima liberalnija ograničenja topline koju može proizvesti i snage koju može potrošiti.
Na kraju dana, bez obzira koliko slobodnog RAM-a imate, aplikacije će i dalje biti izbačene. Upravo tako funkcionira upravljanje memorijom. I dalje postoje prednosti povećanja RAM-a, poput daljnjeg povećanja veličine hrpe koja će tome pomoći napajanje bitmap imovine na zaslonima više rezolucije, što nam omogućuje da pređemo QHD rezolucije na našim uređajima. Povećana veličina gomile kao trend na cijelom tržištu dovest će do aplikacija koje mogu težiti učiniti više. Osim ako RAM nije zaključan kao nedodirljiv, uvijek će postojati neka ili druga upotreba za njega. Ali s obzirom na to da zasloni naizgled lebde između 1080p i 1440p na vodećim brodovima, mogli bismo vidjeti 4GB kao razuman standard još godinu ili dvije.
Kao zaključak, dobivamo odgovor na pitanje: da li stvarno treba toliko RAM-a trenutno? Ne, nemamo. Za uređaje kojima je cijena jedan od čimbenika koji moraju održavati niskom, 3 GB ili 4 GB RAM-a poslužit će dovoljno dobro. Za vodeće brodove s potražnjom od strane korisnika koji ne mare toliko za cijene, ne bi škodilo dokazivanje u budućnosti. Kao kupac, samo imajte na umu da još nećete koristiti sav taj RAM.
Što mislite o telefonima sa 6 GB RAM-a? Javite nam svoje mišljenje u komentarima ispod!