Ma è vero che Android consuma più RAM di iOS?

Non esattamente, ma la risposta è più complessa di così, quindi proviamo a fare un po' di chiarezza
Giuseppe Tripodi
Giuseppe Tripodi Tech Master
Ma è vero che Android consuma più RAM di iOS?

Tra gli utenti Android e i fan di iPhone si combatte spesso una battaglia a suon di luoghi comuni: mentre i sostenitori del robottino verde millantano maggiore apertura, i fan della mela vantano sempre una migliore ottimizzazione del sistema operativo, spiegando che iOS non ha bisogno di valanghe di RAM per gestire le app. Come in tutti i luoghi comuni, anche in questo caso c'è un fondo di verità, ma dire che Android consuma più RAM di iOS è tecnicamente inesatto, e adesso vediamo il perché.

Di recente il panorama Android ha assistito al lancio di OnePlus 5, smartphone che arriva a ben 8GB di RAM, mentre il melafonino con più RAM in assoluto è ancora l'iPhone 7 Plus, con 3GB di RAM.

Eppure, nonostante il primo abbia quasi il triplo della RAM presente sul phablet della Apple, entrambi i dispositivi riescono a gestire tutti i processi necessari per il normale utilizzo.

Ma andiamo con ordine.

Cos'è la RAM?

Banchi di RAM per computer desktop

RAM sta per Random Access Memory, ossia memoria ad accesso casuale: si tratta di un tipo di memoria volatile che viene utilizzata dal processore per contenere tutto ciò che è in esecuzione, dal sistema operativo stesso alle varie app lanciate dall'utente.

Per questa ragione, spesso gli utenti credono che maggior RAM libera corrisponda a maggior velocità del dispositivo, ma anche questa è una mezza verità: in realtà, il sistema operativo tende ad occupare la maggior parte della RAM con la cache delle applicazioni che, all'occorrenza, viene immediatamente eliminata per lasciare spazio ad altri software. Per questo motivo, più che di RAM libera si dovrebbe parlare di RAM disponibile.

Gestione della RAM: Android vs iOS

Per spiegare come cambia la gestione della RAM tra Android e iOS ci rifaremo ai test condotti da Gary Sims per Android Authority (video in fondo).

Per i suoi "esperimenti", Gary ha utilizzato un iPhone 7 e un Nexus 5X, poiché si tratta di due smartphone che hanno lo stesso quantitativo di RAM (2GB) e, nel caso del Nexus, troviamo la versione liscia di Android, senza personalizzazioni che potrebbero appesantire il sistema operativo.

Dal primo avvio si può subito notare che non è affatto vero che Android consuma più RAM di iOS, anzi: guardando esclusivamente al sistema operativo, è il contrario. Numeri alla mano, infatti, il Nexus 5X utilizza circa 100MB di RAM in meno per l'OS: appena avviato, il Nexus ha 840MB di RAM disponibile, mentre iPhone 7 ha 730MB di RAM disponibile.

Confronto RAM disponibile: Android vs iOS

La situazione cambia quando si parla di parla dell'esecuzione delle applicazioni, ma non è neanche questo il punto.

Come potete vedere dal grafico stilato dai colleghi di Android Authority, infatti, alcune app consumano effettivamente di più su Android, ma in altri casi il consumo è pressapoco uguale e, per alcuni giochi, iOS richiede anche più RAM di Android.

Confronto richiesta di RAM di alcune applicazioni su Android e iOS

Ma, come accennato su, non è certo questo il problema: anche quando si parla di videogiochi relativamente pesanti, il consumo non sarebbe certo così esoso da richiedere 4, 6 o 8GB di RAM su Android.

Insomma, l'app che consuma di più tra quelle utilizzate è Crossy road con i suoi 383MB: siamo ben lontani dall'occupare interamente anche solo 1GB di RAM!

Multitasking

Ovviamente, la situazione cambia quando si parla di multitasking, ossia della gestione di più applicazioni contemporaneamente.

A tal proposito, c'è da fare una prima distinzione tra Foreground e Background.

Si parla di stato foreground per l'applicazione che è attualmente in esecuzione, mentre le app che rimangono conservate in memoria RAM ma non sono utilizzate dall'utente vengono dette in background.

Quando un'applicazione viene mandata in background, quindi, vuol dire che non è utilizzata: per questo motivo, se il sistema operativo ha bisogno di RAM per eseguire un altro software, controllerà quali sono le applicazioni che non vengono usate da più tempo e le terminerà, rendendo una parte di RAM nuovamente disponibile.

L'App 2 non ce l'ha fatta.

Questo comportamento è comune a tutti i sistemi operativi, ma quel che cambia tra Android e iOS è quel che avviene prima di killare un'applicazione.

Nel caso di Android, se la RAM disponibile non è sufficiente per avviare un software, il sistema operativo utilizza una funzione inclusa nel kernel Linux chiamata zRam: questa permette di comprimere i blocchi di RAM, riducendo lo spazio occupato.

Per semplificare il tutto, immaginate che tutti i dati conservati in un blocco di RAM vengano zippati (esattamente come si fa con gli archivi di file) per poi essere nuovamente salvati in RAM, occupando però meno spazio.

Solo dopo aver compresso il comprimibile Android procede con il terminare le applicazioni inutilizzate per fare spazio.

Il caso di iOS, invece, è un po' diverso: come evidenziato da Gary, quando mandiamo un'applicazione in background sul sistema operativo della mela, questa riduce drasticamente lo spazio occupato in RAM.

Per far comprendere cosa intendiamo con drasticamente, basta dare un'occhiata a cosa avviene con Crossy Road: quando si trova in foreground, il gioco occupa 308MB, mentre quando passa in background usa solo 6,94MB di RAM, ossia oltre il 97% di spazio in meno.

Gary spiega che non è ben chiaro come iOS riesca a raggiungere un risultato del genere: potrebbe trattarsi di un sistema di paginazione particolarmente efficace o di un metodo di compressione, ma quel che conta è che le applicazioni in background occupano incredibilmente poco.

Tuttavia, c'è da precisare anche che Android e iOS gestiscono le app in background in maniera molto diversa e il sistema operativo della mela è molto più restrittivo sui processi che possono essere eseguiti quando l'app non è in primo piano.

Alla luce di questi ragioni, è facile comprendere perché gli iPhone non hanno bisogno di molta RAM: come accennato anche da Gary, non c'è un approccio più o meno giusto dell'altro. Probabilmente, Apple può permettersi di ridurre così tanto lo spazio occupato dalle app in background grazie a processi di ottimizzazione e limitando le funzioni in background, mentre Google e i diversi produttori preferiscono accumulare GB e GB di RAM per assicurarsi che il sistema non si pianti.

Non ci rimane quindi che lasciarvi al video di Gary Sims più volte citato, che potete guardare di seguito.