6GB di RAM in un iPhone è l'equivalente di 12GB di RAM in Android?
È incredibile quante risposte si ottengono a questa domanda che non hanno idea di cosa stiano parlando. Purtroppo, anche da persone che si definiscono "sviluppatori di software". Ecco come stanno le cose... A livello di applicazione, le applicazioni iOS e Android sono abbastanza simili in termini di quanta memoria richiedono. La differenza tra iOS e Android si riduce a due metodi molto diversi di gestione della memoria. Il modo in cui questi due sistemi gestiscono situazioni di bassa memoria è molto diverso.
Google ha preso l'approccio pigro con Android. Hanno un sistema simile a Java che utilizza uno schema di garbage collection tracciante. Cioè, Android consuma quanta più memoria possibile senza ripulire se stesso fino a quando non inizia a scarseggiare la memoria. Quando questo accade, il sistema avvia un ciclo di garbage collection per liberare la memoria inutilizzata. Il problema è che questi cicli GC sono asincroni e possono avere un grave impatto sulle prestazioni del sistema. Peggio ancora, più il sistema scende in memoria, più frequentemente questi cicli GC sono costretti a verificarsi. Nei primi anni di Android, questo era il motivo principale per le prestazioni balbuzienti per cui Android è diventato noto. L'unico modo per minimizzare questo effetto è quello di spedire un telefono con almeno 2 volte la quantità di ram di cui dovrebbe realmente aver bisogno. Su un sistema con risorse di memoria illimitate, questo va bene e si possono effettivamente raggiungere prestazioni di picco più elevate. Su un dispositivo mobile con risorse limitate, questa è una scelta particolarmente cattiva.
Al contrario, iOS utilizza una tecnica di gestione della memoria nota come ARC (conteggio automatico dei riferimenti). In effetti, al momento della compilazione, il compilatore inserisce del codice per allocare manualmente la memoria quando necessario e deallocarla nel momento in cui ha finito. Mentre c'è una piccola quantità di overhead con questo approccio, la performance è regolare e prevedibile. Nessun ciclo GC indesiderato che abbia un impatto sulle prestazioni. La memoria disponibile è sempre ottimizzata. Questo è il motivo per cui Apple è in grado di spedire telefoni con metà della memoria delle loro controparti Android, mantenendo i loro dispositivi senza problemi.
Entrambi i sistemi possono fare anche altre cose come sospendere le applicazioni in background, ecc. come necessario, ma questo è più ciò che hanno in comune che ciò che è diverso.
Articoli simili
- Perché l'iPhone 12 di prezzo superiore fornisce solo fino a 6GB di RAM mentre Android a metà prezzo fornisce 12GB (doppio) di RAM?
- Qual è meglio per uno studente universitario nel 2020 se lo userò per il resto dei miei giorni di college, 64GB 4GB RAM, o 128GB 6GB RAM phone?
- Dovrei comprare una variante Realme 6i 6GB RAM o Realme X2 4GB RAM?
- Perché il Note 10+ ha 12GB di RAM ma l'iPhone 11 Pro Max di Apple ha solo 4GB?