Enigma RAM: De câtă RAM avem cu adevărat nevoie?

click fraud protection

Pe măsură ce dispozitivele Android încep să se deplaseze către 6 GB de RAM, trebuie să ne punem această întrebare: de câtă RAM avem cu adevărat nevoie? Urmăriți-vă în timp ce explorăm!

Recent, am fost tratați cu anunțurile unuia dintre primele smartphone-uri care rulează Android care vin cu 6 GB de RAM.

6 GB nenorocit! Aceasta înseamnă multă memorie RAM într-un dispozitiv mobil.

Pornirea jocului de numere este Vivo Xplay5 Elite. Vivo ca companie poate să nu fie foarte bine cunoscut în afara Chinei, dar compania, spre meritul său, a făcut niște smartphone-uri foarte subțiri în trecut. Cu Xplay5 Elite, au încercat să se încadreze într-o mulțime de specificații într-un dispozitiv care își propune să fie printre regi.

Vivo Xplay 5 Elite are un afișaj QHD Super AMOLED de 5,43 inchi cu dublă curbă pe un cadru metalic pentru corp. În interior se află cel mai recent SoC Qualcomm Snapdragon 820 tactat la 2,15 Ghz, GPU Adreno 530, 6 GB de RAM LPDDR4 și 128 GB de stocare neextensibilă. Pentru cameră, spatele este un senzor Sony IMX298 de 16 MP cu f/2.0, iar partea din față este un shooter de 8 MP. Ținând cont de aceste specificații și de construcția metalică a dispozitivului, nu ar trebui să fie surprinzător că ar costa destul de mult chiar și pentru consumatorul chinez. Cu un preț de 4.288 CNY (660 USD), acesta este cu siguranță un flagship chinez, mai degrabă decât un mid-ranger accesibil.

Vivo Xplay5 Elite nu este singurul smartphone acum cu 6 GB de RAM. Un OEM chinez mai puțin cunoscut și nou înființat, Vernee, își propune să aducă o mai mare accesibilitate pentru consumatori la cantități uriașe de RAM prin lansarea unui dispozitiv de gamă medie, Vernee Apollo.

Vernee Apollo va veni cu SoC de ultimă generație al MediaTek, Helio X20. Vor fi amintiți 6 GB de RAM, 128 GB de stocare internă, o cameră din spate Sony IMX230 de 21 MP și un afișaj 2K de 5,5 inchi. Cu toate acestea, Apollo ar costa 399,99 USD. Informațiile de presă trimise către noi nu aveau mențiuni despre un preț chinezesc sau despre piețele țintă, așa că telefonul este încă destul de mister.

Ambele telefoane ne roagă să punem întrebarea, nu? chiar nevoie atât de multă RAM acum?

Pentru a răspunde la această întrebare, trebuie să înțelegem cum gestionează Android gestionarea memoriei și RAM. Mishaal a făcut o treabă fantastică explicând complexitățile gestionării memoriei Android în un articol anterior, care încă își păstrează relevanța șase luni mai târziu.

"Modul în care Android se ocupă de gestionarea memoriei este așa: mai degrabă decât să distrugă imediat fiecare proces după terminarea activității sale (cum ar fi când apăsați butonul de pornire pentru a ieși dintr-o aplicație), procesul este păstrat în memorie până când sistemul trebuie să îl oprească pentru a elibera mai multă memorie. Cum decide sistemul ce procese să păstreze și ce să omoare? Driverul LMK (Low Memory Killer). Fiecărui proces îi este atribuită o valoare oom_adj cuprinsă între -17 și 15 de către Serviciul ActivityManager, care ajustează dinamic valoarea oom_adj în funcție de importanța procesului. Valorile mai mari oom_adj înseamnă că procesul este mai probabil să fie ucis pentru a elibera memorie, în timp ce valori mai mici înseamnă că procesul este mai puțin probabil să fie ucis."

"Android clasifică fiecare proces în cinci categorii (prim-plan, vizibil, serviciu, fundal și gol), de la cel mai important la cel mai puțin important pentru a continua să ruleze. Procesele care aparțin fiecărei categorii sunt eliminate la diferite niveluri de memorie liberă rămasă (numită valoare LMK minfree). De exemplu, dacă valorile LMK minfree ale dispozitivului dvs. sunt setate la „2560,4090,6144,7168,8192” (afișate ca pagini de 4k, care pot fi citite din /sys/module/lowmemorykiller/parameters/minfree), atunci dispozitivul dvs. va elimina procesele definite ca „Gol” atunci când memoria liberă scade sub 32 MB, procesele definite ca „Background” când memoria liberă este sub 28 MB și aplicațiile din prim plan când memoria liberă scade sub 10 MB (cerul ferește!) Acum, aceste valori minime nu sunt tipice pe majoritatea dispozitivelor în zilele noastre, deoarece producătorilor le place să le modifice după bunul plac, în funcție de modul în care consideră că se potrivește cel mai bine dispozitivului lor. Dar ceea ce ar trebui să renunți din această scurtă explicație este că, cu cât ai mai multă memorie liberă, cu atât este mai puțin probabil să vezi procese critice oprite."

După cum menționează Mishaal, valorile reale variază de la OEM la OEM, așa că ați putea avea experiențe diferite cu multi-tasking pe diferite telefoane cu specificații similare. O altă variabilă din amestec este cantitatea de bloatware de pe dispozitiv. UX-urile Android puternic modificate, cum ar fi TouchWiz, tind să includă o mulțime de funcții peste Android, bazate pe stoc AOSP și, ca atare, necesită mult mai multe resurse pentru a fi alocate sistemului pentru a funcționa la nivelul dorit de OEM acesta să. Acest lucru lasă mai puțin spațiu pentru ca aplicațiile terță parte să fie stocate în cache, ceea ce, la rândul său, agravează uciderea memoriei scăzute.

Mai ales Moale

"Principala diferență dintre un dispozitiv cu 2 GB RAM față de un dispozitiv cu 3 GB RAM este că dispozitivul cu 3 GB RAM ar trebui să poată stoca în cache mai multe procese în fundal fără a declanșa driverul LMK să-l oprească."

Deci, teoretic, mai multă RAM disponibilă la nivel hardware ar trebui să conducă la mai multe procese care rămân în cache la nivel de sistem de operare și la un pool mai mare de la care OEM să participe. Dar de cele mai multe ori, chiar și pe dispozitivele cu 2 GB de RAM, vezi mult mai mult RAM liber chiar și după ce sistemul și aplicațiile s-au blocat pe ceea ce au nevoie. Iată aceeași galerie din postarea lui Mishaal, comparând memoria RAM liberă pe diferite dispozitive:

După cum puteți vedea, dispozitivele cu cea mai ușoară interfață de utilizare, cum ar fi Nexus 5 și Nexus 6, au cea mai mare proporție de RAM disponibilă pe dispozitiv. Chiar și cel mai greu dintre ele, Samsung Galaxy Note 5 cu 4 GB de RAM și TouchWiz pentru pornire, are aproximativ 1,7 GB de RAM disponibil pentru memorarea în cache a aplicațiilor. Chiar și cu un număr atât de mare de memorie RAM liberă, Note 5 a suferit de probleme de multitasking în care dispozitivul ar recurge la o manipulare agresivă a memoriei. Acest lucru a fost din cauza alegerii de către OEM a valorilor LMK: pomparea mai multor RAM la nivel hardware nu va ajuta! Remedierea pentru Note 5 pentru îmbunătățirea multitasking-ului a implicat de fapt ajustarea acestor valori LMK pentru a fi mai mult Multitasking prietenos decât setările de stoc ale Samsung, ceea ce este ironic pentru un dispozitiv care s-a concentrat pe productivitate. Ca atare, doar a avea mai multă memorie RAM nu va face automat dispozitivul mai prietenos pentru multitasking.

Revenind din nou la galerie, o parte din memoria RAM liberă afișată este deja folosită pentru memorarea în cache a procesului aplicației, dar o parte din aceasta rămâne de fapt inactivă fără a face nimic. Iată câteva capturi de ecran de la OnePlus One al meu care arată RAM-ul liber afișat și apoi despărțirea în RAM stocată în cache și RAM inactiv:

Chiar și în cazul mic de ~1 secundă în care mi-a trebuit să trec dintr-un joc activ și să selectez opțiunea de a afișa procesele stocate în cache, sistemul a funcționat pentru a reduce memoria RAM utilizată. Acest lucru s-a întâmplat deoarece jocul, NFS No Limits în acest caz, a avut o schimbare a priorității, trecând de la un proces de prim-plan la un proces de fundal. Acest lucru a fost făcut cu scopul de a menține sistemul de operare să curgă fără probleme în orice moment, deoarece memoria RAM în utilizare activă s-a schimbat de la 2,5 GB la 1,9 GB, în timp ce procesul de joc NFS No Limits a fost stocat în cache. Pe măsură ce jocul și-a schimbat prioritatea, acum poate fi ucis dacă sistemul de operare are de fapt nevoie de mai multă RAM liberă. Nu este necesară nicio interacțiune cu utilizatorul aici.

Scopul acestui exemplu a fost să evidențieze modul în care managementul memoriei Android a evoluat pentru a fi mai eficient în prioritizarea sistemului și a tuturor proceselor sale. Există doar atât de multe aplicații care vor rămâne în cache în orice moment: sistemul de operare în mod ideal nu folosește întreaga memorie RAM liberă în procesele de stocare în cache. O parte din memoria RAM liberă este lăsată inactiv. Acest lucru este prin proiectare, pentru ocazii în care un proces poate avea nevoie să-și extindă utilizarea RAM foarte rapid.

Există o limită de alocare a memoriei RAM și pentru procesele aplicației, așa cum este definită din nou de OEM pentru telefoanele individuale. Potrivit unui veche postare de discuție de Dianne Hackborn, inginer Android Framework, există o limită pentru Heap Java unde obiectele java vor locui înainte ca colectarea gunoiului să fie inițiată, dar chiar și asta poate fi extins cu utilizarea inteligentă a NDK. Cu cuvinte simple, aceasta înseamnă că există un plafon maxim al memoriei RAM care a fost disponibil pentru orice aplicație care dorea să ruleze pe acel dispozitiv. Pentru dispozitivele mai vechi, acest heap a fost setat la 24 MB, dar pe dispozitivele recente, dimensiunea a fost mărită datorită creșterii memoriei RAM în dispozitive, precum și a cerințelor sporite de hardware. Android Document de definire a compatibilităţii pentru Android 6.0 menționează (Secțiunea 3.7) valorile minime pe care aceste heap-uri ar trebui să fie stabilite de OEM. Pentru comparație, OnePlus One al meu pe CM12.1 se mândrește cu o limită de 192 MB pentru heapele normale Dalvik VM și permite până la 512 MB pentru aplicațiile care specifică android: largeHeap=true în manifestul aplicației lor. Teoretic, o singură aplicație poate folosi doar până la 512 MB de RAM pe dispozitivul meu. Dincolo de aceasta, colectarea gunoiului va fi inițiată pentru a menține celelalte procese necesare ale sistemului.

Acum combinați limita de dimensiune heap pentru aplicații cu valori LMK atribuite acestora în funcție de prioritatea lor și de Insistența sistemului de operare de a menține o anumită cantitate de RAM liberă inactiv și vă puteți imagina cum funcționează multitasking Android lucrări. Este un mecanism complex care implică o mulțime de variabile între hardware, software și aplicația în sine; reglat fin pentru a permite chiar și celor mai elementare dispozitive să funcționeze, permițând totuși celor mai buni dintre flagship-uri să profite în mod absolut de potențialul lor, teoretic. Practic, aceasta nu este o lume perfectă, așa că niciuna dintre acestea nu se întâmplă. Aceasta înseamnă că nu există nicio garanție că un dispozitiv cu 4 GB de RAM va funcționa la fel ca un altul cu 4 GB de RAM. Nici nu înseamnă că un GB suplimentar de RAM peste un anumit prag vă va oferi o creștere direct proporțională a multitasking-ului și a gestionării memoriei.

Practicul și Viitorul

Deci, revenind la întrebarea inițială, chiar ai nevoie de 6 GB de RAM pe dispozitivele tale la începutul lui 2016? Pentru mine, răspunsul este nu.

Majoritatea dispozitivelor pe care le dețin au 3 GB de RAM LPDDR3, iar unul are 4 GB de RAM. Și pur și simplu nu există nicio diferență notabilă în performanță atunci când vine vorba de multitasking. Iată o demonstrație multitasking din recenzia mea recentă OnePlus X, un dispozitiv cu 3 GB de RAM și un ROM Android aproape de stoc:

Dispozitivul nu a avut probleme la comutarea între 12 aplicații (13 dacă numărați înregistratorul de ecran activ) fără a fi nevoie să omorâți niciuna dintre aceste aplicații. Nu a existat nicio reîncărcare și nicio redenare, iar această experiență rămâne surprinzător de consistentă pe parcursul utilizării zilnice, fără reporniri sau ucidere manuală a aplicației. Un consumator normal pur și simplu nu are nevoie să comute activ între aceste multe aplicații în timpul utilizării practice!

Dar dacă utilizatorul dorește să comute între aceste multe jocuri? De acord, factorii menționați mai sus ar intra în joc pentru a permite comutarea între doar câteva jocuri în cel mai bun caz. Într-o astfel de condiție, a avea mai multă memorie RAM fizică ar permite dispozitivului să dețină mai multe jocuri pasiv în memorie. Dar un contrapunct la acest avantaj este că multe jocuri fac adesea o reîncărcare forțată la multitasking! Intenția lor este de a evita ca mecanismele de înșelăciune să manipuleze datele jocului în timp ce jocul rulează, așa că o reîncărcare/resincronizare/reîmprospătare forțează verificările de integritate să intre din nou în joc. Intenția lor este diferită, dar acest lucru face ca o mulțime de jocuri să fie candidați săraci pentru multitasking între ele.

Mai există și alți factori care v-ar împiedica să profitați de toată acea RAM glorioasă. Dacă găsiți o sarcină/mai multe sarcini combinate care necesită toți cei 6 GB din RAM LPDDR4 a dispozitivului dvs., veți avea un blocaj mult mai mare sub forma SoC-ului mobil. Desigur, Snapdragon 820 și Helio X20 pot fi procesoarele emblematice ale companiilor lor, dar sunt încă SoC-uri mobile. Ca atare, au alte limitări, cum ar fi generarea de căldură, disiparea căldurii, limitarea termică și bateria viata care i-ar face alegeri slabe pentru sarcini suficient de intensive pentru a folosi atata RAM pentru o perioada prelungita de timp. În astfel de cazuri, este mai bine să utilizați un sistem care nu este menit să fie ținut în mână; unul care are limite mai liberale în ceea ce privește căldura pe care o poate genera și puterea pe care o poate consuma.

La sfârșitul zilei, indiferent de câtă memorie RAM liberă aveți, aplicațiile vor fi în continuare eliminate. Așa funcționează managementul memoriei. Există încă avantaje de a deveni mare pe RAM, cum ar fi o creștere suplimentară a dimensiunii heap-ului alimentarea activelor bitmap pe ecrane cu rezoluție mai mare, permițându-ne să depășim rezoluțiile QHD pe dispozitivele noastre. O dimensiune crescută a heap-ului ca tendință pe piață va duce la aplicații care pot aspira să facă mai mult. Cu excepția cazului în care memoria RAM este blocată ca fiind de neatins, va exista întotdeauna o anumită utilizare pentru aceasta. Dar, având în vedere că ecranele par să se situeze între 1080p și 1440p pe flagship-uri, am putea vedea 4 GB ca un standard rezonabil pentru încă un an sau doi.

Ca o concluzie, ajungem să răspundem la întrebarea: facem chiar nevoie atât de multă RAM acum? Nu, noi nu. Pentru dispozitivele care au prețul ca unul dintre factorii pe care trebuie să-l mențină la un nivel scăzut, 3 GB sau 4 GB de RAM le-ar servi destul de bine. Pentru produsele emblematice cu cerere din partea utilizatorilor cărora nu le pasă atât de mult de prețuri, nu ar strica să fie demonstrate în viitor. În calitate de client, rețineți că nu veți folosi încă toată acea RAM.

Ce părere aveți despre telefoanele cu 6 GB RAM? Spune-ne gândurile tale în comentariile de mai jos!