Skip to content

Cos’è la RAM virtuale in Android e dovrebbe interessarti?

22 de Marzo de 2022

A parte gli enormi megapixel della fotocamera e i display ad alta frequenza di aggiornamento, la più grande tendenza nel mondo degli smartphone sembra essere la RAM virtuale. Alcuni la chiamano espansione RAM dinamica, mentre altri la chiamano RAM estesa. Indipendentemente da come si chiama, l’idea rimane la stessa. Consenti agli utenti di utilizzare parte della loro memoria come RAM per aiutare con il multitasking.

Discuteremo in questa guida di come funziona la gestione della memoria in Android e di come l’idea di RAM virtuale differisca da essa. Cercheremo di riflettere se la RAM virtuale è richiesta o meno in Android. Facciamolo.

Come funziona la gestione della memoria in Android

Per prima cosa, è importante capire come Android gestisce la sua memoria. All’interno di Android, ci sono 3 tipi di memoria. Prima c’è la tua RAM, poi hai zRAM e infine il tuo spazio di archiviazione. La RAM è il modulo di memoria di base all’interno del quale vengono eseguite tutte le applicazioni. Poi c’è lo spazio di archiviazione integrato, che si tratti di UFS o eMMC su dispositivi economici. Infine, abbiamo zRAM. In sostanza, zRAM è una partizione all’interno della RAM.

L’idea alla base di zRAM è che i dati a bassa priorità nella RAM siano compressi e archiviati all’interno di zRAM. Poiché la RAM è ogni giorno più veloce della normale memoria, avere i dati compressi all’interno di zRAM, che fa parte della RAM, sarà comunque più veloce dell’accesso dalla memoria, anche se si contano i tempi di compressione e decompressione .

Ora che abbiamo stabilito i 3 diversi tipi di memoria disponibili per Android, capiamo come gestisce il tutto il sistema operativo. Quindi Android fa uso di tecniche di impaginazione. Il modo in cui funziona è che la RAM è divisa in pagine, dove ogni pagina è solitamente 4KB. Indipendentemente dal fatto che quella pagina sia gratuita o utilizzata attivamente, si combinano per mostrare rispettivamente la RAM utilizzata e la RAM non utilizzata. Quindi, il compito del kernel è convertire la memoria usata in memoria libera. Lo fa spostando i dati da quelle pagine utilizzate alla sua memoria.

Cos’è l’impaginazione e come funziona?

Per capire come funziona, capiamo i tipi di pagine. Puoi classificare le pagine in due tipi: pagine pulite e pagine sporche. Le pagine pulite hanno una copia non modificata salvata nello spazio di archiviazione. Nel frattempo, le pagine sporche hanno una copia modificata dei dati archiviati nella memoria. Ora, cos’è questo modificato e non modificato? Chiamiamolo uso dinamico della tua memoria.

Le copie non modificate sono dati statici, mentre le copie modificate sono dati dinamici che cambiano ogni secondo. Android può eliminare le pagine pulite quando necessario, poiché non accedono dinamicamente alle risorse. Ciò aiuta a liberare RAM e a renderne più disponibile. Potrebbe sembrare troppo tecnico, quindi semplifichiamo la comprensione utilizzando le applicazioni del mondo reale.

Pagina pulita, archiviazione supportata, eliminata

Supponiamo di aprire Twitter, sfogliare il feed e quindi passare a qualcos’altro. Twitter è ancora lì nella tua memoria RAM. Ma se non lo apri per un po’, la sua priorità diminuisce. Successivamente, se avvii qualcosa di nuovo, Android dovrà liberare la memoria utilizzata da Twitter. Quindi quello che fa è spostare i tuoi valori e dati nella memoria e gli dà spazio libero. Questo è il motivo per cui quando riavvii Twitter, ti mostrerà prima la sequenza temporale in cui è stato ibernato e quindi si aggiornerà. Lo stesso vale per Facebook, Reddit o app simili come Calcolatrice o Note. Queste app utilizzano pagine pulite poiché una copia dei tuoi dati viene salvata staticamente all’interno del tuo spazio di archiviazione.Pagina sporca spostata su zRAM e compressa

Ora per le pagine sporche, considera Spotify o qualsiasi lettore musicale. Avvia un po’ di musica all’interno del lettore e poi mantienila in esecuzione in background senza aprire l’app. Tuttavia, il sistema non può chiuderlo poiché sta utilizzando dinamicamente la sua memoria. Di conseguenza, Android comprime l’app e la passa a zRAM quando è necessaria più RAM libera.

Che cos’è la memoria RAM virtuale?

Ora che sai come Android gestisce la memoria, ti starai chiedendo: dove entra in gioco la funzione RAM virtuale? Ricordi come abbiamo detto che anche zRAM fa parte della RAM? Il modo in cui funziona la RAM virtuale è che crea una partizione di swap sul tuo spazio di archiviazione e la utilizza come zRAM aggiuntiva.

Poiché zRAM è memorizzata solo nella RAM, esiste un limite al numero di pagine che puoi comprimere e archiviare in essa. Con una partizione di swap, puoi utilizzare il tuo spazio di archiviazione come zRAM aggiuntiva, per comprimere e scambiare applicazioni, lasciando spazio disponibile nella tua RAM reale.

Questa funzione è nuova?

Quindi è tutto nuovo? Beh, non proprio. Linux ha utilizzato le partizioni di swap sin dall’inizio. Per Android, gli utenti del kernel personalizzato hanno utilizzato le loro schede SD per creare partizioni di scambio aggiuntive per migliorare la gestione della memoria.

In quanto tali, i produttori di marchi ti forniscono solo la stessa funzionalità integrata nelle loro skin Android. Tuttavia, sorge la domanda: se la funzione è così utile, perché non è stata parte del codice sorgente di Android?

La RAM virtuale è buona o cattiva?

La risposta sta nel funzionamento di base della RAM virtuale. Sebbene la funzione ti consenta di eseguire più app sul tuo dispositivo comprimendo le app in ibernazione e spostandole nella tua memoria, fa più male che bene. Poiché le partizioni di scambio memorizzano essenzialmente le applicazioni attive, è coinvolto un maggiore senso di lettura e scrittura.

Funziona bene con l’archiviazione tradizionale, ma la memoria flash ha un numero limitato di letture e scritture. Quindi, utilizzando SWAP o Virtual RAM, stai tecnicamente riducendo la durata di archiviazione del tuo dispositivo.

Questo è anche evidenziato bene nella pagina degli sviluppatori Android. “In Android, lo spazio di archiviazione non viene utilizzato per lo spazio di scambio come in altre implementazioni Linux, poiché la scrittura frequente può consumare questa memoria e ridurre la durata del supporto di archiviazione”. Un altro esempio di questo è nei nuovi MacBook M1 di Apple. Queste macchine utilizzano una partizione di swap su SSD Apple, di cui gli utenti si sono lamentati parecchio.

La RAM virtuale è importante e dovrei usarla?

In sostanza, tutto dipende da come definisci il multitasking. Se stai destreggiando solo due o tre app attive, allora certo, la RAM virtuale aiuta in questo. Ma se continui a passare da 5 a 6 app molto attive, la RAM virtuale non farà nulla perché continuerà a cambiare app.

In sostanza, la funzione RAM virtuale ti consente di avere più spazio RAM disponibile per l’esecuzione delle applicazioni. Tuttavia, ha il costo della sua conservazione. Se intendi continuare a utilizzare il tuo dispositivo per più di due anni, riteniamo che l’utilizzo della RAM virtuale potrebbe non avere molto senso.