Quando lo scorso settembre Apple ha presentato i nuovi iPhone 6 e iPhone 6 Plus, i detrattori hanno sminuito i due dispositivi dotati di un solo GB di RAM, mentre gli smartphone Android di punta hanno almeno 2 GB di RAM.
Le prestazioni registrate dai vari benchmark hanno però dimostrato che la potenza di calcolo del nuovo processore Apple A8 a 64 bit, riesce a surclassare i dispositivi Android più potenti, nonostante una quantità di RAM inferiore.
Il motivo di questa differenza risiede nel fatto che Android è basato sull’architettura Java, che prevede una virtual machine ed un sistema di Garbage Collector, per liberare la memoria non più utilizzata dalle varie applicazioni.
La virtual machine stessa ha bisogno di un certo quantitativo di RAM per girare, mentre il Garbage Collector è un processo che gira al suo interno e quando vede che la memoria si sta per esaurire, comincia a cercare gli oggetti non più referenziati per deallocare la memoria da essi occupata.
Le app di iOS invece sono compilate in modo nativo e girano direttamente sull’infrastruttura hardware e software dei sistema operativo.
Fino alla versione 5 di iOS i programmatori dovevano preoccuparsi di deallocare la memoria non utilizzata, per evitare il rischio di crash delle app, successivamente Apple ha introdotto un sistema chiamato Automatic Reference Counting, che previene gli errori di programmazione, inserendo automaticamente le istruzioni per deallocare la memoria durante la fase di compilazione del codice. Un modo molto più efficiente di ottenere gli stessi vantaggi del Garbage Collector, poiché gestita preventivamente e non a runtime.
Un approccio quindi diverso, che ha anche il vantaggio di far risparmiare preziosa energia, dato che più RAM e più processi per gestirla erodono inesorabilmente l’autonomia della batteria.