En todos los mercados de electrónica de consumo, las batallas de especificaciones son inevitables. La Compañía A lanza un producto X con 24 cachivaches, así que en respuesta la Compañía B lanza un producto Y con 32 cachivaches. La Compañía A responde al aumento de especificaciones de la Compañía B y así comienza una guerra de especificaciones.
El problema es cuando la guerra de especificaciones se les va de las manos. La Compañía A empezó con 24 cachivaches, pero tres años más tarde se encuentra con 48 cachivaches, un aumento masivo y probablemente innecesario. Los fabricantes de smartphones Android no son inmunes a esto. Hemos visto aumentos en el rendimiento del procesador, la capacidad de la cámara, el almacenamiento interno y mucho más. La mayoría de estos aumentos de especificaciones son necesarios y bien recibidos por los usuarios. Pero creo que en un aspecto la guerra de especificaciones se llegado a ser ridícula: en la RAM
En los inicios de los smartphones Android, los dispositivos tenían 512MB de memoria o incluso 1GB. Esos fueron los humildes comienzos de la revolución del smartphone. Con el tiempo, se fue añadiendo más memoria. En 2014, la mayoría de los dispositivos móviles de gama alta tenían 3GB de RAM y durante 2016 y 2017 los 4GB se convirtieron en el estándar de facto. Y entonces comenzaron las guerras de las especificaciones. Primero llegaron los dispositivos de 6GB, luego los de 8GB, los de 10GB, los de 12GB… ¿Dónde acabará todo esto?
Con la RAM aparentemente aumentando cada trimestre, debemos detenernos y preguntarnos cuánta RAM necesitamos realmente. Tengo aquí en casa portátiles que ejecutan Windows 10 bastante fluido con 4GB de RAM. Mi MacBook tiene 8GB de RAM y puede ejecutar aplicaciones demandantes como Premiere Pro o Photoshop. ¿De verdad estamos sugiriendo que mi móvil necesita más RAM que mi portátil?
En este punto, puede que te estés diciendo a ti mismo: «Sé cuánta RAM necesita un smartphone, son X gigabytes». Puede que estés en lo cierto, pero probablemente no lo estés. Dejando la subjetividad y las opiniones a un lado, lo que necesitamos es un análisis objetivo de cuánta RAM es necesaria.
Primero, echemos un vistazo a cómo gestiona Android la RAM.
Gestión de la RAM
Cuando lanzas una nueva app en Android, el kernel Linux crea un nuevo proceso. Un proceso es una unidad de ejecución con su propio espacio de direcciones virtual (que se asigna a la memoria física). El kernel de Linux gestiona los recursos necesarios por el proceso, incluido el tiempo de ejecución en el procesador, la entrada y salida de datos (a través de la red o a través del archivo de sistema) y la memoria física (RAM).
Cuando hay una abundancia de recursos, el trabajo del kernel es fácil. Si el proceso requiere más tiempo de la CPU y la CPU está inactiva, el kernel puede proporcionar fácilmente más tiempo de ejecución al proceso. Si hay poca entrada/salida, dar al proceso más E/S no es un problema. Si el proceso necesita más RAM y hay RAM disponible, el kernel simplemente tiene que rastrear qué proceso está usando qué bits de memoria.
Sin embargo, cuando los recursos son escasos las cosas se complican. Con el tiempo de CPU y E/S, la principal víctima de la sobrecarga es el rendimiento. Si la CPU está ocupada, el trabajo que haya a mano seguirá haciéndose, pero no tan rápido. La RAM es diferente. Cuanto no tienes más, esperar más tiempo probablemente no dé como resultado que se libere más RAM. Aquí es donde el kernel tiene que ser proactivo para recuperar algo de RAM.
Linux y Android manejan esto de dos maneras. Primero, existe la idea de hacer Swapp (intercambio) usando zRAM. Android puede asignar una porción de memoria física para el swapping. El swapping es una idea que Linux usa en PC y servidores. Cuando no hay suficiente memoria, las páginas de memoria más antiguas y menos usadas se escriben en el disco y la memoria que ocupaban queda disponible para otros procesos. Si la memoria que ha sido intercambiada se necesita más tarde, los datos guardados se leen desde el disco y se vuelven a poner en la memoria (swapped-in), donde pueden usarse.
Android comprime la memoria y la escribe de nuevo en la memoria, pero en la sección reservada para la zRAM. Si asumimos una tasa de compresión del 50%, 128KB de RAM pueden reducirse a 64KB, liberando así 64KB. Esto es equivalente a hacer swapping-out de las páginas al disco. La memoria comprimida no es directamente legible, por lo que si se necesita, tiene que ser descomprimida y vuelta a escribir. Esto es lo mismo que hacer swapping-in.
Cuando un proceso requiere más RAM, pero no hay disponible, el kernel intentará liberar algo de RAM usando el swapping. Si no se encuentra suficiente RAM, el kernel tiene que ser más agresivo y empezar a sacrificar procesos. Esta es una situación extraña para el kernel. Tiene que finalizar un proceso existente para hacer espacio para otro proceso. La clave aquí es que la petición actual de memoria probablemente proceda de la app que está en primer plano, la que está actualmente en uso. El kernel aplica varias pruebas y comprobaciones y determina qué proceso puede ser finalizado para liberar memoria. Si iniciaste el Candy Crush hace tres días y lo dejaste a un lado, y nunca volviste a él, el kernel puede asumir que ya no vas a volver a usarlo, así que decide finalizarlo. Esto libera memoria y permite que la app actualmente en ejecución continúe.
Todo esto se gestiona por medio del controlador Low Memory Killer del kernel. Curiosamente, las futuras versiones de Android tratarán esto de forma ligeramente diferente. Si bien el resultado será el mismo, no será el asesino del kernel el que hace el trabajo sucio. A partir de Linux Kernel 4.12, el driver Low Memory Killer ha sido eliminado, y en su lugar, el userspace Android Low Memory Killer Daemon (lmkd) lleva a cabo las eliminaciones.
Esto significa que cuando inicias una nueva app, las apps que ocupan la memoria más antigua, son eliminadas para dejar espacio. Si vuelves a estas apps, usando la pantalla de aplicaciones recientes, las apps se recargarán, de forma similar a si se abrieran inicialmente.
Aunque este sistema puede parecer brutal, es la forma en la que Android fue diseñado. Todas las apps reciben una clara advertencia de que serán eliminadas y pasarán a diferentes estados, permitiéndoles guardar el estado actual de su información. Cuando se recargan, las apps simplemente leen el último estado de la información y continúan desde donde lo dejaron.
¿Cuánta memoria usan las apps?
Si el Low Memory Killer se activa con mucha frecuencia, la experiencia general del usuario puede verse afectada. En el peor escenario posible, cada vez que dejas a un lado una app para empezar otra, la app anterior será finalizada para hacer sitio a la nueva app. Esto significa una grave condición de memoria baja. Sin embargo, hay un aceptable punto de equilibro en el que las apps residentes ocasionales se terminan para dar paso a nuevas apps. Siempre que la app retirada sea «antigua, el usuario probablemente ni notará que fue eliminada de la memoria. Después de ese punto dulce, la frecuencia de eliminación de las apps se vuelve académica, ya que no habrá muchos cambios perceptibles en la experiencia global del usuario.
Pero, ¿cuál es ese punto dulce? Para averiguarlo, escribí una utilidad que usa el Android Debug Bridge (ADB) para vigilar qué procesos están siendo finalizados, junto con la cantidad de memoria disponible. También mira cuánta RAM usan las apps en ejecución.
Tras muchos experimentos, he acabado con una lista de tres categorías diferentes de aplicaciones. Las apps «estándar» usan entre 130MB y 400MB de RAM. Aquí se encuentran apps como YouTube y WhatsApp, y juegos como Crossy Road y Candy Crush. Luego están las apps de «intensivas multimedia», que cargan muchas imágenes y por lo tanto usan más memoria para mostrarlas. Aquí podemos encontrar títulos como Google Photos e Instagram. Estas apps usan entre 400MB y 700MB de RAM.
Por último, están las apps «enormes», en su mayoría juegos de gama alta que pueden comerse la RAM como si de un hambriento Pac-Man se tratase. Juegos como Need for Speed: No Limits o PUBG Mobile pueden usar entre 800MB y 1152MB. Chrome también entra en esta categoría (con 3 pestañas abiertas).
La cantidad de RAM que se utiliza en el dispositivo depende por completo de las apps que estés ejecutando. Si te gustan Instagram y Candy Crush, pero poco más, usarás poco más de 1GB de RAM. Si alternas entre PUBG y Asphalt 9 durante todo el día, necesitarás 2GB, y así sucesivamente.
¿Cuánta RAM tengo?
Cada móvil Android viene con una cantidad fija de memoria RAM. Forma parte de la placa base del teléfono y no se puede aumentar. El Pixel 3 tiene 4GB, el Note 9 (128GB) tiene 6GB y el OnePlus 6T tiene 8GB. El 6T OnePlus McLaren Edition tiene 10GB y el Lenovo Z5 Pro GT tiene 12GB. Aunque es importante saber cuánta RAM tiene tu móvil, también es importante saber lo disponible que está para las apps en ejecución. Android y Linux usan algo de RAM, al igual que hacen algunos servicios preinstalados a nivel de usuario.
El Mate 8, Pixel 3 XL y Note 8 tienen en torno al 50% de la RAM instalada disponibles para las apps del usuario. Ese número empieza a aumentar ligeramente con el Note 9 y el OP6T, este último ofreciendo el 66% de la RAM instalada al usuario.
También es interesante observar la amplia gama de niveles de zRAM que eligen los OEM. El Mate 8 usa 0,5GB de swap, ¡mientras que el Note 8 está configurado para usar 2,5GB! Curiosamente, OnePlus tiene tanta confianza en los 8GB del OP6T que no usa ningún espacio para swap.
Un dispositivo como el Pixel 3 XL puede contener al menos cinco aplicaciones «estándar» en la memoria sin hacer swapping. Esto significa que puedes alternar entre YouTube, WhatsApp, Spotify, Candy Crush y Google Play sin preocuparte. Si inicias más apps, el Pixel 3 XL empezará a usar automáticamente el espacio swap comprimido de forma más agresiva, en un intento por liberar memoria. Esto en realidad significa que puedes ejecutar entorno a ocho apps «estándar» y mantenerlas todas en la memoria y el espacio swap. Cambiar a una app que ha sido apartada mediante swapp, la traerá de vuelta. El swapping no es realmente notable. A menudo, el proceso que está en segundo plano se coloca primero en el espacio swap. Si inicias más de ocho apps «estándar», una de las apps anteriores será eliminada de la memoria.
Si una app se expulsa de la memoria, no tiene por qué ser algo malo, ya que volverá a cargarse al cambiar a ella. Sin embargo, se puede argumentar que los dispositivos tan caros como el pixel 3 deberían incluir más memoria.
El Note 8 y el Note 9 tienen 6GB de RAM, con unos 2,5GB disponibles para el usuario en el Note 8 y 3,5GB en el Note 9. Ambos dispositivos también tienen al menos 2GB de espacio para swap. Esto significa que puedes cambiar entre un juego intensivo (o Chrome), una app multimedia intensiva (como Instagram) y 5 o más aplicaciones estándar y todo se mantendrá en la memoria. Si inicias más apps, el móvil empezará a usar el espacio swap. Esto aumenta todavía más el número de apps residentes en la memoria.
Estos móviles de 6GB pueden alternar entre una docena o más de apps, incluidas algunas bastante pesadas, sin necesitar ni una sola recarga. Este es el principio del punto dulce. Las apps comunes permanecen en la memoria durante largos periodos de tiempo y la experiencia de multitarea es fluida la mayor parte del tiempo.
El punto dulce sigue estando en el terreno de los 8GB. Con eso, puedes mantener al menos una docena de aplicaciones en la memoria sin tener que recargarlas, incluidas apps más grandes como PUBG y Google Photo. Cambiar entre estas apps resulta muy fluido. Con el tiempo, las apps antiguas serán eliminadas de la memoria para dar paso a nuevas aplicaciones. Probablemente no habrás tocado las apps que se finalizan durante días cuando eso ocurre. Dicho esto, este es el extremo superior del punto dulce. El OnePlus 6T no incluye un espacio swap de intercambio, por lo que probablemente será difícil para el usuario medio notar la diferencia entre un dispositivo de 6GB con swapping y uno de 8GB sin él.
Nota: He simplificado la discusión sobre cuándo se utiliza el espacio de intercambio. Aunque es lo mejor es pensar que el espacio de intercambio solo se usa cuando la memoria disponible se ha agotado, la realidad es que el uso de este espacio es mucho más dinámico y complejo.
¿Más de 8GB?
Una vez que pases de los 8GB, entras en el país del «Absurdo», donde vive el señor Tonto. Incluso con 3GB de memoria, como en mi fiel Mate 8, no estamos hablando de qué aplicaciones puede ejecutar el dispositivo, ¡sino de cuántas puede mantener simultáneamente en la memoria! 4GB es viable, 6GB está genial, 8GB es bordear el absurdo, pero aun así se puede considerar dentro del punto dulce. 10GB, 12GB y 16GB simplemente es una estupidez. Estos son ejemplos de puras especificaciones excesivas, que aumentan el precio y brindan poco o ningún beneficio para el usuario.
En resumen
¿Veremos dispositivos con más de 8GB en 2019? Seguro, y de hecho, ya los hemos visto. Pero eso no significa que sea necesario. Personalmente, me gustaría ver a los usuarios boicoteando cualquier dispositivo móvil con más de 8GB. Sé que puede ser una simple ilusión. A veces, el mejor móvil, por otros motivos, como el rendimiento o la cámara, también viene con una cantidad absurda de RAM. Sin embargo, la única influencia que tenemos los usuarios sobre los fabricantes de smartphones está en nuestras decisiones sobre qué móviles compramos.
Me gustaría que los fabricantes actuaran racionalmente, dejando a un lado la RAM y concentrándose en aspectos más significativos del diseño de los smartphones.
? Se refiere aque guarda las apps que se estan usando al momento osea las que estan abiertas entre mas ram mas apps abiertas
muy buena la explicación, te deja muy claro que es la memoria ram y como debes elegirla al momento de adquirir un tlfono.! gracias !
Mmm… Me deja pensando mucho esta información, recordemos que nunca es esa cifra exacta la que queda libre, ya que hay veces en que si el celular es de 2GB* se pierde más de la mitad de ésta, casi que dejan alrededor de 700MB o menos libre, en el caso de 3GB* quedan como mucho 1.2GB libres posiblemente más, y de 4GB* quedan alrededor de unos 2.3GB libres, y si se trata de 6GB* quedarían alrededor de 4GB libres y el artículo no específica si se refiere a memoria RAM libre.
Debo agradecer la explicación,me a dejado muy claro lo que significa un RAM.
yo tengo un s9+ y tiene 6 gb ram a solo 7000$ y un exinos mas avansado y me corre un emulador de gta v
Interesante informacion, yo me quedo con una humildes 2GB de RAM. gracias por la info.
PIENSAN QUE CON SOLO UNA MEMORIA RAM PUEDEN HACER MILAGROS, SON MUCHOS COMPONENTES QUE VAN DE LA MANO AMIGO, NO SOLO LA MEMORIA RAM TAMBIEN TEN EN CUENTA UN BUEN PROCESADOR.
Buen dato mi estimado , si sabes de otro indicador de velocidad de procesamiento hazmelo saber porfa.
Hola, mi J3 2016 tiene 1.5 RAM y anda muy bien, creo, solo q cuando uso el Waze se detiene la aplicacion, eso sucede cuando la RAM llega x arriba del 75 %, es normal o hay algo malo ahi ?; he probado creo de todo, borrado cache y datos, reiniciado, desinstalado y vuelto a instalar y no hay solucion, algun consejo o cambio de equipo ?, gracias.
La memoria RAM no guarda tus aplicaciones jaja