Android e RAM: come il sistema Google gestisce la memoria

19 Agosto 2010 28

Dall'inizio dell'anno ad ora sono cambiate molte cose in Android. A livello software siamo passati dalla versione 2.0 alla versione 2.2 Froyo e a livello hardware il salto è stato molto grande. Oltre ai processori, gli schermi e le memorie interne, un grosso incremento è stato fatto alla memoria Ram disponibile. Ormai 512MB sono la "norma" per i terminali TOP e un terminale Android con meno di 256MB non viene spesso preso in considerazione seriamente.

Ma tutta questa ram serve davvero? 1GB potrebbe aiutare ancora nelle prestazioni?

Grazie all'amico mmorselli, che ha lasciato un interessante commento in un articolo, cerchiamo di capire come il sistema Android gestisce la memoria volatile.

Bisogna prima di tutto far chiarezza tra le varie memorie, perchè spesso viene chiamata RAM sia quella dove le applicazioni girano, sia quella dove queste vengono salvate, che è anche la stessa dove si trova il sistema operativo, che però di norma viene chiamato ROM.

Fonte della confusione è il fatto che questa ROM in realtà è una flash memory (come una chiavetta USB), divisa in due parti, una protetta dalla scrittura, per cui si comporta “come una ROM, e l’altra scrivibile, per cui si comporta come una RAM non volatile, ovvero che sopravvive se tolgo l’alimentazione. Volendo fare un’equivalenza con il PC, pensate alla ROM come un CD-ROM RW da cui avviate il sistema, e alla memoria per le applicazioni come all’HD del computer dove salvate documenti e installate i programmi.

La RAM, invece, è proprio una memoria volatile come gli uno, due, quattro giga di RAM che avete nel PC, che si cancella se viene riavviato o spento il terminale. In questa ci stanno solo temporaneamente i programmi per essere eseguiti dalla CPU. Gli smartphone ne hanno tipicamente da 128 a 512Mb.

Quando nel telefono si guarda la memoria libera, bisogna prima vedere se si sta guardando quella in cui memorizzo in modo permanente le applicazioni, o quella in cui le applicazioni girano. Quella in cui le applicazioni girano non andrebbe nemmeno mai guardata, interessa il sistema operativo, che, a differenza di quello che capita in windows, deve preoccuparsi di riempirla il più possibile. La memoria libera è segno che il sistema è stato avviato da troppo poco e ancora non si è ottimizzato.

Questo punto è molto importante e sottolinea il fatto che un Task Killer, tanto amato da moltissimi utenti e una delle applicazioni che difficilmente manca su un telefono Android, non è uno strumento necessario ma anzi, potrebbe essere addirittura controproducente per le prestazioni generali del sistema. Ovviamente parliamo di condizioni di funzionamento normale dove non ci sono processi che causano problemi o che vanno, per errori di programmazione o altro, ad intasare la memoria volatile occupandola in modo errato.

Se prendiamo di esempio una delle applicazioni più utilizzate in Android, il Browser interet, quando lo aprite il sistema alloca 70mb di RAM circa (può variare da sistema a sistema e da browser a browser). Appena lo chiudete il sistema non le libera, perchè se tornate ad aprire il browser troverà già tutto pronto (allocare ram e oggetti è un compito molto gravoso per un programma) e farà molto prima. Quando però siete fuori dal browser questa ram viene resa disponibile, così se il prossimo programma che andate ad eseguire (ricordate sempre il discorso di “una applicazione per volta, non ci sono le finestre, come in windows) ne ha bisogno, potrà prenderla. Se poi chiudete e riaprite il browser, pazienza, perderà qualche millisecondo per prendersi la RAM che l’altra applicazione gli avrà reso di nuovo disponibile.

Il discorso potrebbe essere un po’ più complesso di così, perchè nel caso del browser potrebbe esserci un servizio attivo, che si occupa per esempio di finire di caricare una pagina, che alloca della memoria che non rende mai libera finché non viene terminato (il SO può terminarlo, se proprio è a corto di RAM), ma è proprio un caso più unico che raro quello del browser, di solito i programmi che hanno servizi attivi hanno bisogno di pochissime risorse.

Quando nei telefoni si parla di “n Giga di RAM interna (es. il Samsung Galaxy S) si intende sempre memoria flash in cui si caricano dati e applicazioni, come fosse un hard disk, mai memoria RAM a disposizione della CPU.

Quando un Desire/Nexus One avvisa che “sta per finire la memoria intende solo che non potete installare altre applicazioni, non che quelle che avete gireranno più lentamente.

Questa risposta è stata data per chiarire ad alcuni utenti su come il sistema Android utilizza la RAM. Se da una parte è vero che più RAM c'è meglio è, dall'altra troppa RAM non è detto che porti solo benefici. I prossimi telefoni, guardando soprattutto Gingerbread, sembrerebbero arrivare con 1GB di RAM. Tanta, troppa forse, che potrebbe influire anche sui consumi stessi della batteria. Non in percentuale importante forse, ma sempre qualcosa in più pretende dalla batteria.

Provate a non utilizzare un task killer e non preoccuparvi della RAM libera, vedrete che le prestazioni non caleranno (sempre che non ci siano app. scritte male che creano conflitti).

Infine, molte applicazioni Android che rimangono attive, utilizzano appositi processi che lasciano aperte soltanto alcune "porte" che permettono al sistema di controllare eventuali funzionalità e che quindi andranno a consumare una percentuale di RAM bassissima e consumeranno comunque meno batteria rispetto ad una applicazione completamente aperta in background.

Thanks to mmorselli

Condividi


28

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...

Sony Xperia Z3 Compact: la Recensione di HDblog.it

Sony Xperia Z3 vs LG G3: la sfida di HDblog.it | Video

Huawei Mate 7: la Recensione di HDblog.it

Moto G (LTE) vs Moto G 2014: la Sfida di HDblog.it | Video