RAM hlavolam: Kolik RAM skutečně potřebujeme?

Vzhledem k tomu, že zařízení Android začínají směřovat k 6 GB RAM, musíme si položit tuto otázku: Kolik RAM skutečně potřebujeme? Sledujte nás při průzkumu!

Nedávno jsme byli pohoštěni oznámením o jednom z prvních smartphonů se systémem Android, který je dodáván s 6 GB RAM.

zatracených 6 GB! To je hodně RAM v mobilním zařízení.

Spuštění hry s čísly je Vivo Xplay5 Elite. Společnost Vivo jako společnost nemusí být mimo Čínu příliš známá, ale ke cti, že společnost v minulosti vyrobila opravdu tenké smartphony. S Xplay5 Elite se pokusili zapadnout do mnoha specifikací v zařízení, jehož cílem je stát se mezi králi.

Vivo Xplay 5 Elite je vybaven dvojitě zakřiveným 5,43" QHD Super AMOLED displejem na kovovém rámu těla. Uvnitř je nejnovější Qualcomm Snapdragon 820 SoC taktovaný na 2,15 Ghz, GPU Adreno 530, 6GB LPDDR4 RAM a 128GB nerozšiřitelné úložiště. Co se týče fotoaparátu, zadní je 16MP snímač Sony IMX298 s f/2.0 a přední je 8MP střílečka. S ohledem na tyto specifikace a kovovou konstrukci zařízení by nemělo být překvapením, že by to stálo docela dost i pro čínského spotřebitele. S cenovkou 4 288 CNY (660 $) se rozhodně jedná spíše o čínskou vlajkovou loď než o dostupnou střední třídu.

Vivo Xplay5 Elite není momentálně jediným smartphonem s 6GB RAM. Méně známý a nově založený čínský OEM, Vernee, si klade za cíl přinést spotřebitelům větší přístup k obrovskému množství paměti RAM uvedením zařízení střední třídy, Vernee Apollo.

Vernee Apollo bude mít špičkový SoC od MediaTeku, Helio X20. K dispozici bude zmíněných 6GB RAM, 128GB vnitřní úložiště, 21MP zadní fotoaparát Sony IMX230 a 5,5“ 2K displej. S tím vším by Apollo stálo 399,99 $. Tiskové informace, které nám byly zaslány, neobsahovaly žádné zmínky o čínské ceně nebo cílových trzích, takže telefon je stále docela záhadou.

Oba tyto telefony nás prosí, abychom si položili otázku, zda ano opravdu potřebovat tolik RAM právě teď?

Abychom na tuto otázku odpověděli, musíme pochopit, jak Android zachází se správou paměti a RAM. Mishaal odvedl fantastickou práci při vysvětlení složitosti správy paměti Androidu předchozí článek, který si zachovává svou relevanci i o šest měsíců později.

"Způsob, jakým Android zpracovává správu paměti, je takový: spíše než okamžitě zabíjet každý proces po ukončení jeho činnosti (např když stisknutím tlačítka Domů ukončíte aplikaci), proces je uchován v paměti, dokud jej systém nebude muset ukončit, aby uvolnil více paměti. Jak systém rozhoduje o tom, jaké procesy zachovat a co zabít? Ovladač LMK (Low Memory Killer). Každému procesu je službou ActivityManager přiřazena hodnota oom_adj v rozsahu od -17 do 15, která dynamicky upravuje hodnotu oom_adj v závislosti na důležitosti procesu. Vyšší hodnoty oom_adj znamenají větší pravděpodobnost, že bude proces zabit, aby se uvolnila paměť, zatímco nižší hodnoty znamenají, že bude méně pravděpodobné, že bude proces zabit."

"Android kategorizuje každý proces do pěti kategorií (Popředí, Viditelné, Služba, Pozadí a Prázdný), od nejdůležitějších po nejméně důležité, aby bylo možné pokračovat. Procesy patřící do každé kategorie jsou zabity na různých úrovních zbývající volné paměti (tzv. LMK minfree hodnota). Pokud jsou například hodnoty LMK minfree vašeho zařízení nastaveny na „2560,4090,6144,7168,8192“ (uvedeno jako 4k stránek, které lze číst z /sys/module/lowmemorykiller/parameters/minfree), pak vaše zařízení ukončí procesy definované jako „prázdné“, když vaše volná paměť klesne pod 32 MB, procesy definované jako „pozadí“, když je volná paměť nižší než 28 MB, a aplikace v popředí, když volná paměť klesne pod 10 MB (nebesa zakazují!) Tyto minimální hodnoty nejsou v dnešní době pro většinu zařízení typické, protože je výrobci rádi upravují podle svých představ v závislosti na tom, jak se domnívají, že to jejich zařízení nejlépe vyhovuje. Z tohoto stručného vysvětlení byste si ale měli odnést to, že čím více volné paměti máte, tím menší je pravděpodobnost, že zaniknou kritické procesy."

Jak uvádí Mishaal, skutečné hodnoty se liší od OEM k OEM, takže můžete mít různé zkušenosti s multitaskingem na různých telefonech s podobnými specifikacemi. Další proměnnou ve směsi je množství bloatwaru v zařízení. Silně upravené UX pro Android, jako je TouchWiz, mají tendenci obsahovat spoustu funkcí nad rámec Androidu na základě zásob AOSP a jako takové vyžadují mnohem více zdrojů, které mají být přiděleny systému, aby fungoval na úrovni, kterou OEM chtěl to do. To ponechává menší prostor pro ukládání aplikací třetích stran do mezipaměti, což zase zhoršuje zabíjení při nedostatku paměti.

Většinou Měkký

"Hlavní rozdíl mezi zařízením s 2 GB RAM a zařízením s 3 GB RAM je ten, že zařízení s 3 GB RAM by měl být schopen ukládat do mezipaměti více procesů na pozadí, aniž by spouštěl ovladač LMK, aby jej zabil."

Takže teoreticky by více paměti RAM dostupné na hardwarové úrovni mělo vést k tomu, že více procesů zůstane uloženo v mezipaměti na úrovni operačního systému a větší fond pro OEM, ze kterého se bude moci podílet. Ale častěji než ne, dokonce i na zařízeních s 2 GB RAM uvidíte mnohem více volné RAM, i když se systém a aplikace zablokují na to, co potřebují. Zde je stejná galerie z Mishaalova příspěvku, která porovnává volnou RAM mezi různými zařízeními:

Jak vidíte, zařízení s nejlehčím uživatelským rozhraním, jako jsou Nexus 5 a Nexus 6, mají největší podíl volné paměti RAM dostupné v zařízení. Dokonce i nejtěžší ze všech, Samsung Galaxy Note 5 se 4 GB RAM a TouchWiz pro spuštění, má přibližně 1,7 GB RAM, která je k dispozici pro ukládání aplikací do mezipaměti. I s tak velkým fondem volné paměti RAM trpěl Note 5 problémy s multitaskingem, kdy se zařízení uchýlilo k agresivnímu zacházení s pamětí. Bylo to kvůli tomu, že OEM zvolil hodnoty LMK: napumpování více RAM na hardwarové úrovni nepomůže! Oprava pro Note 5 pro zlepšení multitaskingu ve skutečnosti zahrnovala vyladění těchto hodnot LMK tak, aby byly více multitasking přívětivější než nastavení akcií společnosti Samsung, což je ironie pro zařízení, na které se zaměřuje produktivita. Pouhé mít více paměti RAM tedy automaticky neučiní zařízení přívětivějším pro multitasking.

Když se znovu vrátíme do galerie, část zobrazené volné paměti RAM se již používá pro ukládání do mezipaměti procesů aplikace, ale část z toho zůstává ve skutečnosti nečinná. Zde je několik snímků obrazovky z mého OnePlus One, které ukazují zobrazenou volnou paměť RAM a poté rozdělení do mezipaměti RAM a nečinné RAM:

Dokonce i v malé ~1 sekundě, kdy mi trvalo vyměnit aktivní hru a vybrat možnost zobrazení procesů uložených v mezipaměti, systém pracoval na snížení skutečně použité paměti RAM. Stalo se to proto, že hra, v tomto případě NFS No Limits, měla změnu priority a přesunula se z procesu na popředí na proces na pozadí. To bylo provedeno s ohledem na to, aby OS plynule fungoval za všech okolností, protože RAM při aktivním využití se změnila z 2,5 GB na 1,9 GB, zatímco herní proces NFS No Limits byl uložen do mezipaměti. Jak se hra posunula ve své prioritě, je nyní k zabití, pokud OS skutečně potřebuje více volné RAM. Zde není vyžadována žádná interakce uživatele.

Účelem tohoto příkladu bylo zdůraznit, jak se správa paměti Androidu vyvinula, aby byla efektivnější při upřednostňování systému a všech jeho procesů. Existuje jen tolik aplikací, které zůstanou v mezipaměti kdykoli: OS v ideálním případě nepoužívá celou volnou RAM v procesech ukládání do mezipaměti. Část volné paměti RAM je ponechána nečinná. Toto je záměrné pro případy, kdy proces může potřebovat velmi rychle škálovat využití paměti RAM.

Existuje také limit přidělování RAM pro procesy aplikací, jak je definováno výrobcem OEM opět pro jednotlivé telefony. Podle an starý diskusní příspěvek od Dianne Hackborn, Android Framework Engineer, existuje limit na Java halda kde budou objekty java umístěny před zahájením shromažďování odpadu, ale i to lze rozšířit chytrým použitím NDK. Jednoduše řečeno to znamená, že existuje maximální limit paměti RAM, který byl k dispozici pro jakoukoli aplikaci, která chtěla na tomto zařízení běžet. U starších zařízení byla tato halda nastavena na 24 MB, ale u nedávných zařízení byla velikost zvětšena díky nárůstu paměti RAM v zařízeních a také zvýšeným nárokům na hardware. Android Dokument definice kompatibility pro Android 6.0 uvádí (oddíl 3.7) minimální hodnoty, které by tyto hromady měl nastavit výrobce OEM. Pro srovnání, můj OnePlus One na CM12.1 se může pochlubit limitem 192 MB pro normální haldy virtuálních počítačů Dalvik a umožňuje až 512 MB pro aplikace, které v manifestu aplikace specifikují android: largeHeap=true. Jedna aplikace může teoreticky využít pouze až 512 MB paměti RAM v mém zařízení. Kromě toho bude zahájeno shromažďování odpadu, aby ostatní nezbytné systémové procesy zůstaly volné.

Nyní zkombinujte limit velikosti haldy pro aplikace s hodnotami LMK, které jim byly přiřazeny na základě jejich priority a OS je naléhání, aby určité množství volné RAM nečinnosti, a můžete si představit, jak Android je multi tasking funguje. Je to složitý mechanismus, který zahrnuje mnoho proměnných mezi hardwarem, softwarem a samotnou aplikací; vyladěné tak, aby umožňovalo fungování i těch nejzákladnějších zařízení a zároveň umožňovalo těm nejlepším z vlajkových lodí, aby teoreticky absolutně využily jejich potenciál. Prakticky to není dokonalý svět, takže ani jedno z toho se neděje. To znamená, že neexistuje žádná záruka, že zařízení se 4 GB RAM bude fungovat stejně jako jiné se 4 GB RAM. Neznamená to ani, že další GB paměti RAM za určitou hranicí vám přímo úměrně zvýší multitasking a práci s pamětí.

Praktické a Budoucnost

Takže se vrátím k původní otázce, opravdu potřebujete 6GB RAM ve svých zařízeních na začátku roku 2016? Pro mě je odpověď ne.

Většina zařízení, která vlastním, má 3 GB LPDDR3 RAM a jedno má 4 GB RAM. A pokud jde o multitasking, ve výkonu prostě není žádný znatelný rozdíl. Zde je ukázka multitaskingu z mé nedávné recenze OnePlus X, zařízení s 3 GB RAM a téměř skladem Android ROM:

Zařízení nemělo žádné problémy s přepínáním mezi 12 aplikacemi (13, pokud počítáte aktivní záznamník obrazovky), aniž byste museli některou z těchto aplikací zabíjet. Nedošlo k žádnému opětovnému načtení ani překreslení a tato zkušenost zůstává překvapivě konzistentní po celou dobu každodenního používání bez jakéhokoli restartování nebo ručního zabíjení aplikace. Normální spotřebitel prostě nemusí během praktického používání aktivně přepínat mezi těmito mnoha aplikacemi!

Ale co když si uživatel přeje přepínat mezi těmito mnoha hrami? Souhlasím, faktory uvedené výše by vstoupily do hry, aby bylo možné přepínat v nejlepším případě pouze mezi několika hrami. V takovém stavu by více fyzické paměti RAM umožnilo zařízení uložit více her pasivně v paměti. Ale protipólem k této výhodě je to, že mnoho her se při multitaskingu často samo znovu načte! Jejich záměrem je vyhnout se podvodným mechanismům při manipulaci s herními daty, když je hra spuštěna, takže opětovné načtení/znovu synchronizace/obnovení přinutí kontroly integrity, aby znovu vstoupily do hry. Jejich záměr je odlišný, ale díky tomu je spousta her špatnými kandidáty na multitasking.

Existuje také několik dalších faktorů, které by vám bránily ve využívání všech těch skvělých RAM. Pokud najdete kombinaci úkolu/několika úkolů, které vyžadují všech 6 GB LPDDR4 RAM vašeho zařízení, budete mít mnohem větší úzké hrdlo v podobě mobilního SoC. Je pravda, že Snapdragon 820 a Helio X20 mohou být vlajkovými procesory svých příslušných společností, ale stále jsou to mobilní SoC. Jako takové mají další omezení, jako je tvorba tepla, odvod tepla, tepelné škrcení a baterie život, což by z nich udělalo špatnou volbu pro úkoly dostatečně náročné na to, aby využívali tolik paměti RAM po delší dobu čas. V takových případech je lepší použít systém, který není určen k držení v ruce; takový, který má liberálnější limity na teplo, které může generovat, a na energii, kterou může spotřebovat.

Na konci dne, bez ohledu na to, kolik volné paměti RAM máte, aplikace budou stále vyřazeny. Tak funguje správa paměti. Stále existují výhody velkého rozšíření paměti RAM, například další zvýšení velikosti haldy pomůže napájení bitmapových aktiv na displejích s vyšším rozlišením, což nám umožňuje jít nad rámec rozlišení QHD na našich zařízeních. Větší velikost haldy jako trend na trhu povede k aplikacím, které mohou aspirovat na víc. Pokud není RAM uzamčena jako nedotknutelná, vždy pro ni bude nějaké využití. Ale vezmeme-li v úvahu, že se obrazovky zdánlivě pohybují mezi 1080p a 1440p na vlajkových lodích, mohli bychom vidět 4GB jako rozumný standard na další rok nebo dva.

Na závěr se dostáváme k odpovědi na otázku: ano opravdu potřebovat tolik RAM právě teď? Ne, neděláme. U zařízení, která mají cenu jako jeden z faktorů, který potřebují udržet na nízké úrovni, by jim 3GB nebo 4GB RAM posloužily dostatečně. U vlajkových lodí s poptávkou od uživatelů, kteří se o ceny tolik nestarají, by neuškodilo budoucí ověření. Jako zákazník si uvědomte, že ještě nevyužijete všechnu tuto RAM.

Jaký je váš názor na telefony s 6GB RAM? Dejte nám vědět své myšlenky v komentářích níže!