RAM hlavolam: Koľko pamäte RAM skutočne potrebujeme?

Keď sa zariadenia so systémom Android začínajú pohybovať smerom k 6 GB RAM, musíme si položiť túto otázku: Koľko RAM skutočne potrebujeme? Sledujte, ako skúmame!

Nedávno sme sa dočkali oznámenia o jednom z prvých smartfónov so systémom Android, ktorý je dodávaný so 6 GB RAM.

neuveriteľných 6 GB! To je veľa pamäte RAM v mobilnom zariadení.

Spustenie hry s číslami je Vivo Xplay5 Elite. Vivo ako spoločnosť možno nie je veľmi známa mimo Číny, no treba jej chváliť, že v minulosti vyrobila naozaj tenké smartfóny. S Xplay5 Elite sa pokúsili zapadnúť do mnohých špecifikácií v zariadení, ktorého cieľom je postaviť sa medzi kráľov.

Vivo Xplay 5 Elite je vybavený dvojitým zakriveným 5,43" QHD Super AMOLED displejom na kovovom ráme tela. Vo vnútri sa nachádza najnovší Qualcomm Snapdragon 820 SoC taktovaný na 2,15 Ghz, GPU Adreno 530, 6 GB LPDDR4 RAM a 128 GB nerozšíriteľné úložisko. Čo sa týka fotoaparátu, vzadu je 16MP snímač Sony IMX298 s f/2.0 a vpredu je 8MP strieľačka. Ak vezmeme do úvahy tieto špecifikácie a kovovú konštrukciu zariadenia, nemalo by byť prekvapením, že to bude stáť dosť aj pre čínskeho spotrebiteľa. S cenovkou 4 288 CNY (660 USD) je to určite skôr čínska vlajková loď než cenovo dostupný model strednej triedy.

Vivo Xplay5 Elite nie je momentálne jediný smartfón so 6 GB RAM. Menej známy a novozaložený čínsky OEM, Vernee, má za cieľ priniesť spotrebiteľom väčší prístup k obrovskému množstvu pamäte RAM uvedením zariadenia strednej triedy, Vernee Apollo.

Vernee Apollo bude mať špičkový SoC od MediaTek, Helio X20. Chýbať nebude spomínaných 6GB RAM, 128GB interné úložisko, 21MP zadný fotoaparát Sony IMX230 a 5,5“ 2K displej. So všetkými tým by Apollo stálo 399,99 dolárov. Tlačové informácie, ktoré nám boli zaslané, neobsahovali žiadnu zmienku o čínskej cene alebo cieľových trhoch, takže telefón je stále dosť záhadný.

Oba tieto telefóny nás prosia, aby sme si položili otázku, či áno skutočne potrebovať toľko RAM práve teraz?

Aby sme na túto otázku odpovedali, musíme pochopiť, ako Android zvláda správu pamäte a RAM. Mishaal odviedol fantastickú prácu pri vysvetľovaní zložitosti správy pamäte Androidu predchádzajúci článok, ktorá si zachováva svoju aktuálnosť aj o šesť mesiacov neskôr.

"Spôsob, akým Android spracováva správu pamäte, je takýto: namiesto okamžitého zabíjania každého procesu po ukončení jeho činnosti (napr keď stlačíte tlačidlo Domov na ukončenie aplikácie), proces sa uchováva v pamäti, kým ho systém nebude musieť ukončiť, aby uvoľnil viac pamäte. Ako sa systém rozhoduje, ktoré procesy ponechať a čo zabiť? Ovládač LMK (Low Memory Killer). Služba ActivityManager priraďuje každému procesu hodnotu oom_adj v rozsahu od -17 do 15, ktorá dynamicky upravuje hodnotu oom_adj v závislosti od dôležitosti procesu. Vyššie hodnoty oom_adj znamenajú, že proces je pravdepodobnejšie zabitý, aby sa uvoľnila pamäť, zatiaľ čo nižšie hodnoty znamenajú, že proces bude menej pravdepodobne zabitý."

"Android kategorizuje každý proces do piatich kategórií (Popredie, Viditeľné, Služba, Pozadie a Prázdne), ktoré sa pohybujú od najdôležitejších po najmenej dôležité, aby bolo možné pokračovať. Procesy patriace do každej kategórie sa zastavia na rôznych úrovniach zostávajúcej voľnej pamäte (nazývaná hodnota LMK minfree). Napríklad, ak sú hodnoty LMK minfree vášho zariadenia nastavené na „2560,4090,6144,7168,8192“ (uvedené ako 4k stránky, ktoré možno prečítať z /sys/module/lowmemorykiller/parameters/minfree), potom vaše zariadenie ukončí procesy definované ako „prázdne“, keď vaša voľná pamäť klesne pod 32 MB, procesy definované ako „pozadie“, keď je voľná pamäť nižšia ako 28 MB, a aplikácie v popredí, keď voľná pamäť klesne pod 28 MB 10 MB (nebesia zakazujú!) Tieto minimálne hodnoty nie sú v súčasnosti typické pre väčšinu zariadení, pretože výrobcovia ich radi upravujú podľa svojich predstáv v závislosti od toho, ako sa domnievajú, že to najlepšie vyhovuje ich zariadeniu. Z tohto stručného vysvetlenia by ste si však mali odniesť to, že čím viac máte voľnej pamäte, tým je menej pravdepodobné, že zastavia kritické procesy."

Ako uvádza Mishaal, skutočné hodnoty sa líšia od OEM k OEM, takže môžete mať rôzne skúsenosti s multitaskingom na rôznych telefónoch s podobnými špecifikáciami. Ďalšou premennou v mixe je množstvo bloatware na zariadení. Silne upravené UX pre Android, ako je TouchWiz, zvyčajne obsahujú veľa funkcií nad rámec Androidu na základe zásob AOSP a ako také vyžadujú oveľa viac zdrojov, ktoré majú byť pridelené systému, aby fungoval na úrovni, ktorú OEM chcel to. To ponecháva menší priestor pre aplikácie tretích strán na ukladanie do vyrovnávacej pamäte, čo zase zhoršuje zabíjanie nízkej pamäte.

Väčšinou Mäkký

"Hlavný rozdiel medzi zariadením s 2 GB RAM a zariadením s 3 GB RAM je ten, že zariadenie s 3 GB RAM by malo byť schopné ukladať do vyrovnávacej pamäte viac procesov na pozadí bez spustenia ovládača LMK, aby ho zabil."

Teoreticky by teda viac pamäte RAM dostupnej na hardvérovej úrovni malo viesť k tomu, že viac procesov zostane uložených vo vyrovnávacej pamäti na úrovni operačného systému a väčší fond, z ktorého sa môže OEM zapojiť. Ale častejšie, dokonca aj na zariadeniach s 2 GB pamäte RAM, uvidíte oveľa viac voľnej pamäte RAM, aj keď sa systém a aplikácie zablokujú na to, čo potrebujú. Tu je rovnaká galéria z Mishaalovho príspevku, ktorá porovnáva voľnú pamäť RAM na rôznych zariadeniach:

Ako vidíte, zariadenia s najľahším používateľským rozhraním, ako sú Nexus 5 a Nexus 6, majú najväčší podiel voľnej pamäte RAM dostupnej v zariadení. Dokonca aj ten najťažší zo všetkých, Samsung Galaxy Note 5 so 4 GB RAM a TouchWiz na spustenie, má približne 1,7 GB RAM, ktorá je k dispozícii na ukladanie aplikácií. Aj pri tak veľkom objeme voľnej pamäte RAM trpel Note 5 problémami s multitaskingom, kedy sa zariadenie uchýlilo k agresívnemu zaobchádzaniu s pamäťou. Bolo to kvôli voľbe hodnôt LMK výrobcom OEM: napumpovanie väčšej pamäte RAM na hardvérovej úrovni nepomôže! Oprava pre Note 5 na zlepšenie multitaskingu v skutočnosti zahŕňala vyladenie týchto hodnôt LMK tak, aby boli viac multitasking priateľskejší ako nastavenia akcií Samsungu, čo je ironické pre zariadenie, ktoré sa zameriava na produktivitu. Ak máte viac pamäte RAM, automaticky sa tým zariadenie nestane priateľskejšie na multitasking.

Keď sa znova vrátime do galérie, časť zobrazenej voľnej pamäte RAM sa už používa na ukladanie procesov aplikácií do vyrovnávacej pamäte, ale časť z toho zostáva v skutočnosti nečinná. Tu je niekoľko snímok obrazovky z môjho OnePlus One, ktoré zobrazujú zobrazenú voľnú pamäť RAM a potom rozdelenie do pamäte RAM a nečinnej pamäte RAM:

Dokonca aj v malej ~ 1 sekunde, ktorú mi trvalo prepnutie z aktívnej hry a výber možnosti zobrazenia procesov uložených vo vyrovnávacej pamäti, systém pracoval na znížení skutočne použitej pamäte RAM. Stalo sa to preto, že hra, v tomto prípade NFS No Limits, mala zmenu priority a presunula sa z procesu v popredí na proces na pozadí. Bolo to urobené s cieľom zachovať plynulý chod operačného systému za každých okolností, pretože pamäť RAM pri aktívnom využívaní sa zmenila z 2,5 GB na 1,9 GB, zatiaľ čo herný proces NFS No Limits bol uložený do vyrovnávacej pamäte. Keď sa hra posunula vo svojej priorite, je teraz možné ju zabiť, ak OS skutočne potrebuje viac voľnej pamäte RAM. Tu nie je potrebná žiadna interakcia používateľa.

Cieľom tohto príkladu bolo poukázať na to, ako sa správa pamäte Androidu vyvinula, aby bola efektívnejšia pri uprednostňovaní systému a všetkých jeho procesov. Existuje len toľko aplikácií, ktoré zostanú kedykoľvek uložené vo vyrovnávacej pamäti: OS v ideálnom prípade nepoužíva celú voľnú pamäť RAM v procesoch ukladania do vyrovnávacej pamäte. Časť voľnej pamäte RAM je ponechaná nečinná. Toto je zámerné pre prípady, keď proces môže potrebovať veľmi rýchlo zvýšiť využitie pamäte RAM.

Existuje aj limit pridelenia pamäte RAM pre procesy aplikácií, ako je definované výrobcom OEM opäť pre jednotlivé telefóny. Podľa an starý diskusný príspevok od Dianne Hackborn, Android Framework Engineer, existuje limit na Java halda kde sa objekty java budú nachádzať pred spustením zberu odpadu, ale aj to sa dá rozšíriť šikovným použitím NDK. Jednoducho povedané, to znamená, že existuje maximálny limit pamäte RAM, ktorý bol k dispozícii pre každú aplikáciu, ktorá chcela bežať na tomto zariadení. Pre staršie zariadenia bola táto halda nastavená na 24 MB, ale na najnovších zariadeniach sa veľkosť zväčšila vďaka zvýšeniu RAM v zariadeniach, ako aj zvýšeným hardvérovým nárokom. Android Dokument s definíciou kompatibility pre Android 6.0 uvádza (časť 3.7) minimálne hodnoty, ktoré by tieto haldy mali nastaviť výrobcom pôvodného zariadenia. Pre porovnanie, môj OnePlus One na CM12.1 sa môže pochváliť limitom 192 MB pre bežné haldy virtuálnych počítačov Dalvik a umožňuje až 512 MB pre aplikácie, ktoré v manifeste aplikácie špecifikujú android: largeHeap=true. Teoreticky môže jedna aplikácia využívať iba 512 MB pamäte RAM v mojom zariadení. Okrem toho sa spustí zber odpadu, aby sa zachoval voľný tok ostatných potrebných systémových procesov.

Teraz skombinujte limit veľkosti haldy pre aplikácie s hodnotami LMK, ktoré im boli priradené na základe ich priority a OS trvá na tom, aby určité množstvo voľnej pamäte RAM zostalo nečinné, a viete si predstaviť, ako je Android multitasking Tvorba. Ide o zložitý mechanizmus, ktorý zahŕňa množstvo premenných medzi hardvérom, softvérom a samotnou aplikáciou; jemne vyladené tak, aby umožňovalo fungovanie aj tých najzákladnejších zariadení a zároveň stále umožňovalo tým najlepším vlajkovým lodiam, aby teoreticky absolútne využili ich potenciál. Prakticky to nie je dokonalý svet, takže ani jedno z toho sa nedeje. To znamená, že nie je zaručené, že zariadenie so 4 GB RAM bude fungovať rovnako ako iné so 4 GB RAM. Neznamená to ani to, že extra GB RAM za určitým prahom vám priamo úmerne zvýši multitasking a prácu s pamäťou.

Praktické a budúcnosť

Vráťme sa teda k pôvodnej otázke, naozaj potrebujete 6GB RAM vo svojich zariadeniach začiatkom roka 2016? Pre mňa je odpoveď nie.

Väčšina zariadení, ktoré vlastním, má 3 GB LPDDR3 RAM a jedno má 4 GB RAM. A pri multitaskingu jednoducho nie je badateľný rozdiel vo výkone. Tu je ukážka multitaskingu z mojej nedávnej recenzie OnePlus X, zariadenie s 3 GB RAM a takmer sériovou Android ROM:

Zariadenie nemalo problémy s prepínaním medzi 12 aplikáciami (13, ak počítate aktívny záznamník obrazovky) bez toho, aby ste museli zabiť niektorú z týchto aplikácií. Nedošlo k žiadnemu opätovnému načítaniu ani prekresleniu a táto skúsenosť zostáva prekvapivo konzistentná počas každodenného používania bez reštartovania alebo manuálneho zabíjania aplikácií. Bežný spotrebiteľ jednoducho nemusí pri praktickom používaní aktívne prepínať medzi týmito mnohými aplikáciami!

Ale čo ak chce používateľ namiesto toho prepínať medzi týmito mnohými hrami? Súhlasím, faktory uvedené vyššie by vstúpili do hry, aby umožnili prepínanie medzi niekoľkými hrami v najlepšom prípade. V takom stave by viac fyzickej pamäte RAM umožnilo zariadeniu držať viac hier pasívne v pamäti. Ale protipólom k tejto výhode je to, že veľa hier sa pri multitaskingu často silovo obnoví! Ich zámerom je vyhnúť sa podvádzaniu mechanizmov pri manipulácii s hernými údajmi, keď je hra spustená, takže opätovné načítanie/opätovná synchronizácia/obnovenie prinúti znova sa spustiť kontroly integrity. Ich zámer je odlišný, no vďaka tomu je veľa hier zlými kandidátmi na multitasking.

Existuje aj niekoľko ďalších faktorov, ktoré by vám zabránili vo využívaní výhod všetkej tej skvelej pamäte RAM. Ak nájdete kombinovanú úlohu/niekoľko úloh, ktoré vyžadujú všetkých 6 GB pamäte LPDDR4 RAM vášho zariadenia, mali by ste oveľa väčšiu prekážku v podobe mobilného SoC. Je pravda, že Snapdragon 820 a Helio X20 môžu byť vlajkovými procesormi svojich spoločností, ale stále sú to mobilné SoC. Ako také majú ďalšie obmedzenia, ako je tvorba tepla, rozptyl tepla, tepelné škrtenie a batéria život, ktorý by z nich urobil zlú voľbu pre úlohy dostatočne náročné na to, aby využívali toľko pamäte RAM na dlhšiu dobu čas. V takýchto prípadoch je lepšie použiť systém, ktorý nie je určený na držanie v ruke; taký, ktorý má liberálnejšie limity na teplo, ktoré môže generovať, a energiu, ktorú môže spotrebovať.

Na konci dňa, bez ohľadu na to, koľko voľnej pamäte RAM máte, aplikácie budú stále vyhodené. Takto funguje správa pamäte. Stále existujú výhody veľkého využívania pamäte RAM, napríklad pomôže ďalšie zvýšenie veľkosti haldy napájanie bitmapových aktív na displejoch s vyšším rozlíšením, čo nám umožňuje ísť nad rámec rozlíšenia QHD na našich zariadeniach. Zvýšená veľkosť haldy ako trend na trhu povedie k aplikáciám, ktoré dokážu dosiahnuť viac. Pokiaľ nie je RAM uzamknutá ako nedotknuteľná, vždy bude mať nejaké alebo iné využitie. Ale ak vezmeme do úvahy, že obrazovky sa na vlajkových lodiach zdanlivo pohybujú medzi 1080p a 1440p, mohli by sme vidieť 4 GB ako rozumný štandard na ďalší rok alebo dva.

Na záver sa dostávame k odpovedi na otázku: áno skutočne potrebovať toľko RAM práve teraz? Nie, nechceme. Pre zariadenia, ktoré majú cenu ako jeden z faktorov, ktoré potrebujú udržiavať na nízkej úrovni, by im 3 GB alebo 4 GB RAM poslúžili dostatočne. Pri vlajkových lodiach s dopytom od používateľov, ktorým na cene až tak nezáleží, by nezaškodilo overenie do budúcnosti. Ako zákazník si všimnite, že ešte nevyužijete celú pamäť RAM.

Aký je váš názor na telefóny so 6 GB RAM? Dajte nám vedieť svoje myšlienky v komentároch nižšie!