RAM problēma: cik daudz RAM mums tiešām ir nepieciešams?

Kad Android ierīces sāk virzīties uz 6 GB RAM, mums ir jāuzdod sev šāds jautājums: cik daudz RAM mums patiešām ir nepieciešams? Sekojiet līdzi mūsu izpētei!

Nesen mēs saņēmām paziņojumus par vienu no pirmajiem viedtālruņiem, kuros darbojas operētājsistēma Android un kuram ir 6 GB RAM.

6 satriecoši GB! Tas ir daudz RAM mobilajā ierīcē.

Ciparu spēles sākšana ir Vivo Xplay5 Elite. Vivo kā uzņēmums, iespējams, nav ļoti labi pazīstams ārpus Ķīnas, taču uzņēmums, godinot, pagātnē ir izgatavojis dažus patiešām plānus viedtālruņus. Ar Xplay5 Elite viņi mēģināja iekļauties daudzās specifikācijās ierīcē, kuras mērķis ir būt starp karaļiem.

Vivo Xplay 5 Elite ir aprīkots ar divkāršu izliektu 5,43 collu QHD Super AMOLED displeju uz metāla korpusa rāmja. Iekšpusē ir jaunākais Qualcomm Snapdragon 820 SoC ar takts frekvenci 2,15 GHz, Adreno 530 GPU, 6 GB LPDDR4 RAM un 128 GB nepaplašināma atmiņa. Kamerai aizmugurē ir 16MP Sony IMX298 sensors ar f/2.0, bet priekšpusē ir 8MP šāvējs. Paturot prātā šīs specifikācijas un ierīces metālisko uzbūvi, nevajadzētu būt pārsteigumam, ka tas maksās diezgan dārgi pat Ķīnas patērētājam. Ar cenu zīmi 4288 CNY (660 USD), tas noteikti ir Ķīnas flagmanis, nevis pieņemams vidēja ranga ražotājs.

Vivo Xplay5 Elite šobrīd nav vienīgais viedtālrunis ar 6 GB RAM. Mazāk zināms un nesen dibināts Ķīnas oriģinālo iekārtu ražotājs Vernee cenšas nodrošināt patērētājiem lielāku piekļuvi milzīgam operatīvās atmiņas apjomam, izlaižot vidējas klases ierīci Vernee Apollo.

Vernee Apollo nāks ar MediaTek augstākās klases SoC, Helio X20. Būs iepriekšminētā 6 GB RAM, 128 GB iekšējā atmiņa, 21 MP Sony IMX230 aizmugurējā kamera un 5,5 collu 2K displejs. Ar visu to Apollo maksātu 399,99 USD. Mums nosūtītajā preses informācijā nebija ne vārda par Ķīnas cenu vai mērķa tirgiem, tāpēc tālrunis joprojām ir diezgan noslēpumains.

Abi šie tālruņi liek mums uzdot jautājumu, vai mēs tiešām vajag tik daudz RAM šobrīd?

Lai atbildētu uz šo jautājumu, mums ir jāsaprot, kā Android apstrādā atmiņas pārvaldību un RAM. Mišāls paveica fantastisku darbu, izskaidrojot Android atmiņas pārvaldības sarežģījumus iepriekšējais raksts, kas joprojām saglabā savu aktualitāti pēc sešiem mēnešiem.

"Tas, kā Android apstrādā atmiņas pārvaldību, ir šāds: tā vietā, lai nekavējoties apturētu katru procesu pēc tā darbības beigām (piemēram, kad nospiežat sākuma pogu, lai izietu no lietotnes), process tiek saglabāts atmiņā, līdz sistēmai tas ir jāiznīcina, lai atbrīvotu vairāk atmiņas. Kā sistēma izlemj, kādus procesus saglabāt un kādus nogalināt? LMK (Low Memory Killer) draiveris. Katram procesam ActivityManager pakalpojums piešķir oom_adj vērtību no -17 līdz 15, kas dinamiski pielāgo oom_adj vērtību atkarībā no procesa svarīguma. Augstākas oom_adj vērtības nozīmē, ka process, visticamāk, tiks apturēts, lai atbrīvotu atmiņu, savukārt zemākas vērtības nozīmē, ka process, visticamāk, tiks apturēts."

"Android katru procesu iedala piecās kategorijās (priekšplāns, redzamais, pakalpojums, fons un tukšs), sākot no vissvarīgākā līdz vismazāk svarīgajam, lai turpinātu darboties. Katrai kategorijai piederošie procesi tiek iznīcināti dažādos atlikušās brīvās atmiņas līmeņos (saukta par LMK minfree vērtību). Piemēram, ja jūsu ierīces LMK minfree vērtības ir iestatītas uz “2560,4090,6144,7168,8192” (norādītas kā 4k lapas, kuras var nolasīt no /sys/module/lowmemorykiller/parameters/minfree), tad jūsu ierīce iznīcinās procesus, kas definēti kā “Tukšs”, ja jūsu brīvās atmiņas apjoms ir mazāks par 32 MB, procesus, kas definēti kā “Fons”, ja brīvās atmiņas apjoms ir mazāks par 28 MB, un priekšplāna programmas, ja brīvās atmiņas apjoms ir mazāks. 10 MB (nedod debesis!) Mūsdienās šīs minfree vērtības nav raksturīgas lielākajai daļai ierīču, jo ražotājiem patīk tās pielāgot atbilstoši savām vēlmēm atkarībā no tā, kā viņi uzskata, ka tas vislabāk atbilst viņu ierīcei. Bet no šī īsā skaidrojuma jums vajadzētu atņemt: jo vairāk brīvas atmiņas jums ir, jo mazāka iespējamība, ka kritiskie procesi tiks pārtraukti."

Kā min Mišāls, faktiskās vērtības atšķiras atkarībā no oriģinālā aprīkojuma ražotājiem, tāpēc jums var būt atšķirīga pieredze, veicot vairākus uzdevumus dažādos tālruņos ar līdzīgām specifikācijām. Vēl viens mainīgais klāstā ir bloatware daudzums ierīcē. Spēcīgi pārveidoti Android UX, piemēram, TouchWiz, parasti satur daudzas funkcijas papildus Android ierīcēm, pamatojoties uz krājumiem AOSP, un tādējādi sistēmai ir nepieciešams daudz vairāk resursu, lai tā darbotos OEM vēlamajā līmenī. to uz. Tas atstāj mazāk iespēju trešo pušu lietotnēm saglabāt kešatmiņu, kas savukārt pasliktina atmiņas samazināšanos.

Lielākoties Mīksts

"Galvenā atšķirība starp ierīci ar 2 GB RAM un ierīci ar 3 GB RAM ir tāda, ka ierīce ar 3 GB RAM vajadzētu būt iespējai fonā saglabāt vairāk procesu kešatmiņā, neaktivizējot LMK draiveri, lai to iznīcinātu."

Tātad teorētiski lielākam RAM pieejamām aparatūras līmenī vajadzētu radīt vairāk procesu, kas paliek kešatmiņā OS līmenī, un lielākam kopumam OEM, ko izmantot. Taču biežāk pat ierīcēs ar 2 GB RAM tiek rādīts daudz vairāk brīvas RAM pat pēc tam, kad sistēma un lietotnes ir bloķējušas nepieciešamo. Šeit ir tā pati galerija no Mishaal ziņas, kurā salīdzināta bezmaksas RAM dažādās ierīcēs:

Kā redzat, ierīcēs ar vieglāko lietotāja interfeisu, piemēram, Nexus 5 un Nexus 6, ir lielākais ierīcē pieejamās brīvās RAM īpatsvars. Pat vissmagākajam tālrunim Samsung Galaxy Note 5 ar 4 GB RAM un TouchWiz sāknēšanai ir aptuveni 1,7 GB RAM, kas ir pieejama lietotņu saglabāšanai kešatmiņā. Pat ar tik lielu brīvās RAM kopumu Note 5 cieta no daudzuzdevumu problēmām, kad ierīce izmantoja agresīvu atmiņas apstrādi. Tas bija saistīts ar oriģinālā aprīkojuma ražotāju LMK vērtību izvēli: papildu RAM pievienošana aparatūras līmenī nepalīdzēs! Note 5 labojums vairākuzdevumu uzlabošanai faktiski ietvēra šo LMK vērtību pielāgošanu, lai tās būtu lielākas vairākuzdevumu veikšanai draudzīgāks nekā Samsung akciju iestatījumi, kas ir ironiski ierīcei, kas koncentrējas uz produktivitāte. Tādējādi, ja ir vairāk RAM, ierīce automātiski nepadarīs vairākuzdevumu veikšanai draudzīgāku.

Atgriežoties pie galerijas, daļa no parādītās bezmaksas RAM jau tiek izmantota lietotņu procesa kešatmiņai, taču daļa faktiski paliek dīkstāvē, neko nedarot. Šeit ir daži ekrānuzņēmumi no mana OnePlus One, kurā parādīta parādītā bezmaksas RAM un pēc tam sadalīšana kešatmiņā saglabātajā RAM un dīkstāves RAM:

Pat mazajā ~ 1 sekundē, kad man bija nepieciešams izmainīt no aktīvās spēles un atlasīt kešatmiņā saglabāto procesu rādīšanas opciju, sistēma strādāja, lai samazinātu faktiski izmantoto RAM. Tas notika, jo spēlei, šajā gadījumā NFS bez ierobežojumiem, tika mainīta prioritāte, pārejot no priekšplāna procesa uz fona procesu. Tas tika darīts, lai OS vienmēr darbotos vienmērīgi, jo aktīvajā lietošanā esošā RAM mainījās no 2,5 GB uz 1,9 GB, savukārt NFS No Limits spēles process tika saglabāts kešatmiņā. Tā kā spēle ir mainījusi savu prioritāti, tagad tā ir nogalināma, ja operētājsistēmai patiešām ir nepieciešams vairāk brīvas RAM. Šeit nav nepieciešama lietotāja iejaukšanās.

Šī piemēra mērķis bija uzsvērt, kā Android atmiņas pārvaldība ir attīstījusies, lai efektīvāk noteiktu sistēmas un visu tās procesu prioritātes. Ir tikai tik daudz lietotņu, kas jebkurā laikā paliks kešatmiņā: OS ideālā gadījumā kešatmiņas procesos neizmanto visu bezmaksas RAM. Daļa brīvās RAM tiek atstāta dīkstāvē. Tas ir izstrādāts gadījumos, kad procesam var būt nepieciešams ļoti ātri palielināt RAM lietojumu.

Arī lietotņu procesiem ir noteikts RAM piešķiršanas ierobežojums, ko atkārtoti noteicis oriģinālā aprīkojuma ražotājs atsevišķiem tālruņiem. Saskaņā ar an vecs diskusiju ieraksts Autors Dianne Hackborn, Android Framework Engineer, ir ierobežots Java kaudze kur atradīsies java objekti pirms atkritumu savākšanas uzsākšanas, taču pat to var paplašināt, gudri izmantojot NDK. Vienkāršiem vārdiem sakot, tas nozīmē, ka RAM ir maksimālais ierobežojums, kas bija pieejams jebkurai lietotnei, kas vēlējās darboties šajā ierīcē. Vecākām ierīcēm šī kaudze tika iestatīta uz 24 MB, taču jaunākajās ierīcēs lielums ir palielināts, jo ierīcēs ir palielinājies RAM, kā arī pieauga aparatūras prasības. Android Saderības definīcijas dokuments priekš Android 6.0 norāda (3.7. sadaļa) minimālās vērtības, kas šīm kaudzēm ir jānosaka OEM. Salīdzinājumam, mans OnePlus One operētājsistēmā CM12.1 var lepoties ar 192 MB ierobežojumu parastajām Dalvik VM kaudzēm, un lietotnēm, kuru lietojumprogrammas manifestā ir norādīts Android: largeHeap=true, ir atļauts līdz pat 512 MB. Teorētiski viena lietotne manā ierīcē var izmantot tikai līdz 512 MB RAM. Turklāt tiks uzsākta atkritumu savākšana, lai nodrošinātu citu nepieciešamo sistēmas procesu brīvu plūsmu.

Tagad apvienojiet lietotņu kaudzes lieluma ierobežojumu ar tām piešķirtajām LMK vērtībām, pamatojoties uz to prioritāti un OS uzstājība, lai noteiktu daudzumu bezmaksas RAM ir jātur dīkstāvē, un jūs varat iedomāties, kā Android darbojas daudzuzdevumi darbojas. Tas ir sarežģīts mehānisms, kas ietver daudzus mainīgos lielumus starp aparatūru, programmatūru un pašu lietotni; precīzi noregulēts, lai ļautu darboties pat visvienkāršākajām ierīcēm, vienlaikus ļaujot labākajām vadošajām ierīcēm teorētiski pilnībā izmantot savu potenciālu. Praktiski šī nav ideāla pasaule, tāpēc neviens no tiem nenotiek. Tas nozīmē, ka nav garantijas, ka ierīce ar 4 GB RAM darbosies tāpat kā cita ar 4 GB RAM. Tas arī nenozīmē, ka papildu GB RAM, kas pārsniedz noteiktu slieksni, nodrošinās jums tieši proporcionālu vairākuzdevumu un atmiņas apstrādes pieaugumu.

Praktiskais un nākotne

Tātad, atgriežoties pie sākotnējā jautājuma, vai tiešām 2016. gada sākumā jūsu ierīcēs ir nepieciešama 6 GB RAM? Man atbilde ir nē.

Lielākajai daļai man piederošo ierīču ir 3 GB LPDDR3 RAM, bet vienai ir 4 GB RAM. Un vienkārši nav manāmas atšķirības veiktspējā, ja runa ir par vairākuzdevumu veikšanu. Šeit ir vairākuzdevumu demonstrācija no mana nesenā OnePlus X apskata — ierīce ar 3 GB RAM un gandrīz pieejamu Android ROM atmiņu:

Ierīcei nebija problēmu, pārslēdzoties starp 12 lietotnēm (13, ja skaitāt aktīvo ekrāna ierakstītāju), neizslēdzot nevienu no šīm lietotnēm. Netika atkārtoti ielādēts un pārzīmēts, un šī pieredze saglabājas pārsteidzoši konsekventa ikdienas lietošanas laikā bez atkārtotas palaišanas vai manuālas lietotņu iznīcināšanas. Normālam patērētājam praktiski nav nepieciešams aktīvi pārslēgties starp šīm daudzajām lietotnēm!

Bet ko darīt, ja lietotājs tā vietā vēlas pārslēgties starp šīm daudzajām spēlēm? Piekrītu, iepriekš minētie faktori stāsies spēkā, lai labākajā gadījumā ļautu pārslēgties tikai starp dažām spēlēm. Šādā stāvoklī vairāk fiziskās RAM ļautu ierīcei pasīvi saglabāt vairāk spēļu atmiņā. Taču šīs priekšrocības pretstats ir tas, ka daudzas spēles bieži vien pārslogo sevi vairāku uzdevumu veikšanas laikā! Viņu mērķis ir izvairīties no krāpšanās mehānismiem, kas manipulē ar spēles datiem, kamēr spēle darbojas, tāpēc atkārtota ielāde/atkārtoti sinhronizēšana/atsvaidzināšana liek atkal darboties integritātes pārbaudēm. Viņu nolūks ir atšķirīgs, taču tas padara daudzas spēles par sliktu kandidātiem, lai starp tām veiktu vairākus uzdevumus.

Ir vēl daži faktori, kas neļautu jums izmantot visas šīs krāšņās RAM priekšrocības. Ja atrodat uzdevumu/vairākus uzdevumus, kuriem ir nepieciešami visi 6 GB jūsu ierīces LPDDR4 RAM, mobilā SoC veidā jums būs daudz lielāka sašaurināšanās vieta. Protams, Snapdragon 820 un Helio X20 var būt attiecīgo uzņēmumu vadošie procesori, taču tie joprojām ir mobilie SoC. Tiem ir arī citi ierobežojumi, piemēram, siltuma ražošana, siltuma izkliede, termiskā drosele un akumulators dzīvi, kas padarītu viņus par sliktu izvēli pietiekami intensīviem uzdevumiem, lai ilgstoši izmantotu tik daudz RAM laiks. Šādos gadījumos labāk izmantot sistēmu, kas nav paredzēta turēšanai rokā; tāda, kurai ir liberālāki ierobežojumi attiecībā uz siltumu, ko tas var radīt, un jaudu, ko tas var patērēt.

Dienas beigās neatkarīgi no tā, cik daudz brīvas RAM atmiņas jums ir, lietotnes joprojām tiks izmestas. Tieši tā darbojas atmiņas pārvaldība. Lielai RAM izmantošanai joprojām ir priekšrocības, piemēram, turpmāka kaudzes lieluma palielināšana palīdzēs bitkartes aktīvu barošana augstākas izšķirtspējas displejos, ļaujot mūsu ierīcēs pārsniegt QHD izšķirtspēju. Palielināts kaudzes lielums kā tendence visā tirgū radīs lietotnes, kas var censties paveikt vairāk. Ja vien RAM nav bloķēta kā neaizskarama, tā vienmēr tiks izmantota. Bet, ņemot vērā to, ka ekrāni šķietami svārstās starp 1080p un 1440p flagmaņiem, mēs varētu uzskatīt, ka 4 GB ir saprātīgs standarts vēl vienu vai divus gadus.

Noslēgumā mums ir jāatbild uz jautājumu: vai mēs tiešām vajag tik daudz RAM šobrīd? Nē, mēs nē. Ierīcēm, kurām cena ir viens no faktoriem, kas tām ir jāsaglabā zemā līmenī, 3 GB vai 4 GB RAM derētu pietiekami labi. Flagmaņiem, kuru pieprasījums ir no lietotājiem, kuriem cenas tik ļoti nerūp, tas nenāktu par ļaunu nākotnē. Kā klients vienkārši ņemiet vērā, ka jūs vēl neizmantosiet visu šo RAM.

Kādas ir jūsu domas par tālruņiem ar 6 GB RAM? Paziņojiet mums savas domas zemāk esošajos komentāros!