A cantidade ideal de RAM que necesitan os teléfonos para a súa multitarefa suave é un tema bastante debatido. Apple segue con un tamaño máis pequeno nos seus iPhones, que moitas veces é máis utilizable que as solucións de Android. Tampouco atoparás ningún tipo de xestión da memoria RAM no iPhone, mentres que Android ten a súa propia función dedicada para iso.
Se vai, por exemplo, en teléfonos Samsung Galaxy para Configuración -> Coidado do dispositivo, atoparás aquí un indicador de RAM con información sobre canto espazo está libre e canto está ocupado. Despois de facer clic no menú, podes ver a cantidade de memoria que ocupa cada aplicación e tamén tes a opción de borrar a memoria aquí. A función RAM Plus tamén se atopa aquí. O seu significado é que morderá un certo número de GB do almacenamento interno, que utilizará para a memoria virtual. Podes imaxinar algo así en iOS?
Os teléfonos intelixentes dependen da memoria RAM. Sérvelles para almacenar o sistema operativo, para lanzar aplicacións e tamén para almacenar algúns dos seus datos na caché e na memoria intermedia. Así, a memoria RAM debe estar organizada e xestionada de forma que as aplicacións poidan funcionar sen problemas, aínda que as solte nun segundo plano e as abra de novo despois dun tempo.
Swift vs. Xava
Pero ao iniciar unha nova aplicación, cómpre ter espazo libre na memoria para cargala e executala. De non ser así, a praza deberá quedar libre. Polo tanto, o sistema finalizará de forma forzada algúns procesos en execución, como aplicacións que xa se iniciaron. Non obstante, ambos os sistemas, é dicir, Android e iOS, funcionan de forma diferente coa RAM.
O sistema operativo iOS está escrito en Swift e os iPhones non precisan reciclar de novo no sistema a memoria usada das aplicacións pechadas. Isto débese á forma en que iOS está construído, porque Apple ten control total sobre el xa que só funciona nos seus iPhones. En cambio, Android está escrito en Java e utilízase en moitos dispositivos, polo que debe ser máis universal. Cando a aplicación finaliza, o espazo que ocupaba devólvese ao sistema operativo.
Código nativo vs. JVM
Cando un programador escribe unha aplicación para iOS, compílaa directamente nun código que se pode executar no procesador do iPhone. Este código chámase código nativo porque non require interpretación nin ambiente virtual para executarse. Android, en cambio, é diferente. Cando se compila o código Java, convértese en código intermedio Java Bytecode, que é independente do procesador. Polo tanto, pode funcionar en diferentes procesadores de diferentes fabricantes. Isto ten enormes vantaxes para a compatibilidade entre plataformas.
Por suposto, tamén hai unha desvantaxe. Cada combinación de sistema operativo e procesador necesita un ambiente coñecido como Java Virtual Machine (JVM). Pero o código nativo funciona mellor que o código executado a través da JVM, polo que usar a JVM simplemente aumenta a cantidade de RAM utilizada pola aplicación. Así, as aplicacións de iOS usan menos memoria, de media un 40%. Tamén é por iso que Apple non ten que equipar os seus iPhones con tanta memoria RAM como os dispositivos Android.
Non son exactamente un experto, pero describirei a miña perspectiva desde a perspectiva dun usuario que usou Android durante 15 anos e que xa leva 2 meses no iPhone 13 mini. En Android con 8 GB de memoria (o máis recente Samsung S21, Flip3) adoitaba volver despois dun tempo determinado á aplicación lanzada anteriormente e aínda estaba cargada na memoria RAM, polo que non volveu comezar de novo e puiden recoller sen problemas onde estaba. deixou fóra. Por outra banda, aínda con 8 GB de memoria, "desbotaba" todas as aplicacións unha vez á semana para limpar a RAM, porque o sistema comezou a ralentizarse con memoria chea. Non teño ningún problema para ralentizar o iPhone, pero, por outra banda, teño que dicir que ao utilizar aplicacións case idénticas, pola contra, pásame regularmente que cando volvo a unha aplicación xa lanzada, volve cargar completamente e non podo seguir sen problemas onde o deixei.
Que opción é mellor? Difícil de dicir... Eliminar aplicacións en Android e limpar a RAM é cuestión de dous clics. Cargar toda a aplicación de novo no iPhone non leva tanto tempo, polo que non importa tanto... Por suposto, o ideal sería ter máis memoria RAM no iPhone e multitarefa como en Android :-D
Merda, volve ser estúpido. Por unha banda, Android non se fai en Java hai moito tempo, para iso está Kotlin. O colector de lixo encárgase da memoria, que é a máis sinxela de iOS, que existe aínda coas súas desvantaxes. Todo é que iOS mata as aplicacións en canto as sacas da pantalla. Isto libera memoria igual que en linux cando escribe kill pid dun proceso. É por iso que leva tanto tempo abrir o navegador e volver ao traballo anterior. Este artigo é unha tradución literal dun artigo de X anos de antigüidade por un fanático de iOS sen coñecementos de programación. Si, por suposto, a xestión da memoria é principalmente responsabilidade do programador, o que fai a aplicación. Se o tose, hai unha fuga de memoria no mundo e pqk podes ter X Gb de memoria e aínda é inútil. E nun momento no que moitas aplicacións son só WebView, isto é moi sinxelo, porque el mesmo come o que pode. O artigo é unha tontería, lixo.
Android xa non usa jvm, senón dvm. Ademais, compílao nun executable nativo
Java aínda está en Android.