El enigma de la RAM: ¿Cuánta RAM necesitamos realmente?

A medida que los dispositivos Android comienzan a avanzar hacia los 6 GB de RAM, debemos hacernos esta pregunta: ¿Cuánta RAM necesitamos realmente? ¡Síguenos mientras exploramos!

Recientemente, recibimos anuncios de uno de los primeros teléfonos inteligentes con Android que viene con 6 GB de RAM.

¡6 malditos GB! Esa es mucha RAM en un dispositivo móvil.

Iniciar el juego de números es el Vivo Xplay5 Elite. Puede que Vivo como empresa no sea muy conocida fuera de China, pero la empresa, hay que reconocerlo, ha fabricado algunos teléfonos inteligentes realmente delgados en el pasado. Con el Xplay5 Elite, intentaron incluir muchas especificaciones en un dispositivo que pretende estar entre los reyes.

El Vivo Xplay 5 Elite cuenta con una pantalla QHD Super AMOLED de doble curvatura de 5,43" sobre un marco metálico para el cuerpo. En el interior, se encuentra el último SoC Qualcomm Snapdragon 820 con frecuencia de 2,15 Ghz, GPU Adreno 530, 6 GB de RAM LPDDR4 y 128 GB de almacenamiento no ampliable. Para la cámara, la trasera es un sensor Sony IMX298 de 16MP con f/2.0 y la frontal es un disparador de 8MP. Teniendo en cuenta estas especificaciones y la construcción metálica del dispositivo, no debería sorprender que cueste bastante incluso para el consumidor chino. Con un precio de 4288 CNY (660 dólares), este es sin duda un buque insignia chino en lugar de un modelo asequible de gama media.

El Vivo Xplay5 Elite no es el único smartphone en estos momentos con 6GB de RAM. Un OEM chino menos conocido y recién fundado, Vernee, tiene como objetivo brindar una mayor accesibilidad al consumidor a cantidades gigantescas de RAM mediante el lanzamiento de un dispositivo de gama media, el Vernee Apollo.

El Vernee Apollo vendrá con el SoC de gama alta de MediaTek, el Helio X20. Habrá los 6 GB de RAM antes mencionados, 128 GB de almacenamiento interno, una cámara trasera Sony IMX230 de 21 MP y una pantalla 2K de 5,5 pulgadas. Con todo eso, el Apollo costaría 399,99 dólares. La información de prensa que nos enviaron no mencionaba ningún precio chino ni mercados objetivo, por lo que el teléfono sigue siendo un misterio.

Ambos teléfonos nos ruegan que nos hagamos la pregunta: realmente necesito ¿Tanta RAM ahora mismo?

Para responder a esta pregunta, debemos entender cómo maneja Android la gestión de la memoria y la RAM. Mishaal hizo un trabajo fantástico al explicar las complejidades de la gestión de memoria de Android en un artículo anterior, que aún mantiene su relevancia seis meses después.

"La forma en que Android maneja la administración de la memoria es la siguiente: en lugar de eliminar inmediatamente cada proceso después de que finaliza su actividad (como cuando presionas el botón de inicio para salir de una aplicación), el proceso se mantiene en la memoria hasta que el sistema necesita finalizarlo para liberar más memoria. ¿Cómo decide el sistema qué procesos conservar y cuáles eliminar? El controlador LMK (Low Memory Killer). A cada proceso se le asigna un valor oom_adj que oscila entre -17 y 15 mediante el servicio ActivityManager, que ajusta dinámicamente el valor oom_adj según la importancia del proceso. Los valores más altos de oom_adj significan que es más probable que el proceso se cierre para liberar memoria, mientras que los valores más bajos significan que es menos probable que el proceso se cierre."

"Android clasifica cada proceso en cinco categorías (Primer plano, Visible, Servicio, Fondo y Vacío) que van desde el más importante al menos importante para seguir ejecutándose. Los procesos que pertenecen a cada categoría se eliminan en diferentes niveles de memoria libre restante (llamado valor minfree de LMK). Por ejemplo, si los valores LMK minfree de su dispositivo están configurados en “2560,4090,6144,7168,8192” (enumerados como páginas de 4k, que se pueden leer desde /sys/module/lowmemorykiller/parameters/minfree), entonces su dispositivo eliminará los procesos definidos como "Vacío" cuando la memoria libre sea inferior a 32 MB, los procesos definidos como "En segundo plano" cuando la memoria libre sea inferior a 28 MB y las aplicaciones en primer plano cuando la memoria libre sea inferior a 32 MB. 10 MB (¡Dios no lo permita!) Ahora bien, estos valores minfree no son típicos en la mayoría de los dispositivos hoy en día, ya que a los fabricantes les encanta modificarlos a su gusto dependiendo de cómo consideren que se adapta mejor a su dispositivo. Pero lo que deberías aprender de esta breve explicación es que cuanta más memoria libre tengas, es menos probable que veas que se eliminen procesos críticos."

Como menciona Mishaal, los valores reales varían de un OEM a otro, por lo que podrías tener diferentes experiencias con múltiples tareas en diferentes teléfonos con especificaciones similares. Otra variable en la mezcla es la cantidad de bloatware en el dispositivo. Las UX de Android muy modificadas, como TouchWiz, tienden a incluir muchas funciones además de Android según el stock. AOSP y, como tal, requieren que se asignen muchos más recursos al sistema para que funcione al nivel que deseaba el OEM. eso a. Esto deja menos espacio para que las aplicaciones de terceros se almacenen en caché, lo que a su vez agrava la pérdida de memoria.

Principalmente Suave

"La principal diferencia entre un dispositivo con 2 GB de RAM y uno con 3 GB de RAM es que el dispositivo con 3 GB de RAM debería poder almacenar en caché más procesos en segundo plano sin que el controlador LMK lo elimine."

Entonces, en teoría, más RAM disponible a nivel de hardware debería dar lugar a que queden más procesos almacenados en caché a nivel del sistema operativo y a un grupo más grande del que pueda participar el OEM. Pero la mayoría de las veces, incluso en dispositivos con 2 GB de RAM, se ve mucha más RAM libre incluso después de que el sistema y las aplicaciones se han fijado en lo que necesitan. Aquí está la misma galería de la publicación de Mishaal, comparando la RAM libre en varios dispositivos:

Como puede ver, los dispositivos con la interfaz de usuario más liviana, como Nexus 5 y Nexus 6, tienen la mayor proporción de RAM libre disponible en el dispositivo. Incluso el más pesado de todos, el Samsung Galaxy Note 5 con 4 GB de RAM y TouchWiz para arrancar, tiene alrededor de 1,7 GB de RAM disponible para el almacenamiento en caché de aplicaciones. Incluso con una cantidad tan grande de RAM libre, el Note 5 sufría problemas de multitarea en los que el dispositivo recurría a un manejo agresivo de la memoria. Esto se debió a la elección de valores LMK por parte del OEM: ¡insertar más RAM a nivel de hardware no ayudará! La solución para el Note 5 para mejorar la multitarea en realidad implicó ajustar estos valores LMK para que fueran más amigable para múltiples tareas que la configuración estándar de Samsung, lo cual es irónico para un dispositivo que se centró en productividad. Como tal, el simple hecho de tener más RAM no hará que el dispositivo sea automáticamente más compatible con la multitarea.

Volviendo a la galería, parte de la RAM libre que se muestra ya se utiliza para el almacenamiento en caché del proceso de la aplicación, pero parte de ella permanece inactiva sin hacer nada. Aquí hay algunas capturas de pantalla de mi OnePlus One que muestran la RAM libre mostrada y luego la división en RAM en caché y RAM inactiva:

Incluso en el pequeño instante de aproximadamente 1 segundo que me tomó salir de un juego activo y seleccionar la opción para mostrar los procesos en caché, el sistema trabajó para reducir la RAM real utilizada. Esto sucedió porque el juego, NFS No Limits en este caso, tuvo un cambio de prioridad, pasando de un proceso en primer plano a un proceso en segundo plano. Esto se hizo con el fin de mantener el sistema operativo funcionando sin problemas en todo momento, ya que la RAM en uso activo cambió de 2,5 GB a 1,9 GB, mientras que el proceso del juego NFS No Limits se almacenó en caché. A medida que el juego cambió de prioridad, ahora se puede eliminar si el sistema operativo realmente necesita más RAM libre. Aquí no se requiere interacción del usuario.

El objetivo de este ejemplo era resaltar cómo la gestión de la memoria de Android ha evolucionado para ser más eficiente a la hora de priorizar el sistema y todos sus procesos. Hay un número limitado de aplicaciones que permanecerán en caché en cualquier momento: lo ideal es que el sistema operativo no utilice toda la RAM libre en los procesos de almacenamiento en caché. Una parte de la RAM libre se deja inactiva. Esto es por diseño, para ocasiones en las que un proceso puede necesitar aumentar su uso de RAM muy rápidamente.

También existe un límite de asignación de RAM para los procesos de aplicaciones, según lo define nuevamente el OEM para teléfonos individuales. Según un antigua publicación de discusión por Dianne Hackborn, ingeniera de marco de Android, hay un límite en el montón de Java donde residirán los objetos java antes de que se inicie la recolección de basura, pero incluso eso se puede ampliar con el uso inteligente del NDK. En palabras simples, esto significa que hay un límite máximo de RAM disponible para cualquier aplicación que quiera ejecutarse en ese dispositivo. Para los dispositivos más antiguos, este montón se configuró en 24 MB, pero en los dispositivos más recientes, el tamaño aumentó gracias al aumento de RAM en los dispositivos, así como a las mayores demandas de hardware. Android Documento de definición de compatibilidad para Androide 6.0 menciona (Sección 3.7) los valores mínimos que estos montones deben ser establecidos por el OEM. A modo de comparación, mi OnePlus One en CM12.1 cuenta con un límite de 192 MB para montones de VM Dalvik normales y permite hasta 512 MB para aplicaciones que especifican android: largeHeap=true en su manifiesto de aplicación. En teoría, una sola aplicación sólo puede utilizar hasta 512 MB de RAM en mi dispositivo. Más allá de eso, se iniciará la recolección de basura para mantener el libre flujo de otros procesos necesarios del sistema.

Ahora combine el límite de tamaño del montón para aplicaciones con valores LMK asignados según su prioridad y el La insistencia del sistema operativo en mantener una cierta cantidad de RAM libre inactiva, y puedes imaginar cómo funciona la multitarea de Android. obras. Es un mecanismo complejo que involucra muchas variables entre el hardware, el software y la aplicación misma; ajustado para permitir que incluso los dispositivos más básicos funcionen y, al mismo tiempo, permitir que los mejores buques insignia aprovechen al máximo su potencial, en teoría. En la práctica, este no es un mundo perfecto, por lo que ninguna de las dos cosas sucede. Esto significa que no hay garantía de que un dispositivo con 4 GB de RAM funcione igual que otro con 4 GB de RAM. Tampoco significa que un GB extra de RAM más allá de cierto umbral le dará un aumento directamente proporcional en la multitarea y el manejo de la memoria.

Lo práctico y el futuro

Entonces, volviendo a la pregunta original, ¿Realmente necesitas 6 GB de RAM en tus dispositivos a principios de 2016? Para mi, la respuesta es no.

La mayoría de los dispositivos que tengo tienen 3 GB de RAM LPDDR3 y uno tiene 4 GB de RAM. Y simplemente no hay una diferencia notable en el rendimiento cuando se trata de realizar múltiples tareas. Aquí hay una demostración multitarea de mi reciente revisión de OnePlus X, un dispositivo con 3 GB de RAM y una ROM de Android casi disponible:

El dispositivo no tuvo problemas para cambiar entre 12 aplicaciones (13 si cuenta la grabadora de pantalla activa) sin tener que eliminar ninguna de estas aplicaciones. No hubo recarga ni redibujado, y esta experiencia sigue siendo sorprendentemente consistente durante el uso diario sin reinicios ni eliminación manual de la aplicación. ¡Un consumidor normal simplemente no tiene necesidad de cambiar activamente entre tantas aplicaciones durante el uso práctico!

Pero, ¿qué pasa si el usuario desea cambiar entre estos muchos juegos? De acuerdo, los factores mencionados anteriormente entrarían en juego para permitir, en el mejor de los casos, cambiar entre unos pocos juegos. En tal condición, tener más RAM física permitiría al dispositivo almacenar pasivamente más juegos en la memoria. ¡Pero un contrapunto a esta ventaja es que muchos juegos a menudo se recargan a la fuerza al realizar múltiples tareas! Su intención es evitar que los mecanismos de trampa manipulen los datos del juego mientras el juego se está ejecutando, por lo que una recarga/resincronización/actualización obliga a que las comprobaciones de integridad entren en juego nuevamente. Su intención es diferente, pero esto hace que muchos juegos sean malos candidatos para realizar múltiples tareas.

También hay algunos factores más que le impedirían aprovechar toda esa gloriosa RAM. Si encuentra una tarea o varias tareas combinadas que requieren los 6 GB de RAM LPDDR4 de su dispositivo, tendrá un cuello de botella mucho mayor en la forma del SoC móvil. Por supuesto, el Snapdragon 820 y el Helio X20 pueden ser los procesadores insignia de sus respectivas compañías, pero siguen siendo SoC móviles. Como tales, tienen otras limitaciones como la generación de calor, la disipación de calor, la estrangulación térmica y la batería. vida, lo que los convertiría en malas opciones para tareas lo suficientemente intensivas como para usar tanta RAM durante un período prolongado de tiempo. En tales casos, es mejor utilizar un sistema que no esté diseñado para sostenerse en la mano; uno que tenga límites más liberales sobre el calor que puede generar y la energía que puede consumir.

Al final del día, no importa cuánta RAM libre tengas, las aplicaciones seguirán siendo expulsadas. Así es como funciona la gestión de la memoria. Todavía existen ventajas al aumentar la cantidad de RAM, como que un mayor aumento en el tamaño del montón ayudará a potenciando activos de mapa de bits en pantallas de mayor resolución, permitiéndonos ir más allá de las resoluciones QHD en nuestros dispositivos. Un mayor tamaño del montón como tendencia en el mercado dará lugar a aplicaciones que puedan aspirar a hacer más. A menos que la RAM esté bloqueada como intocable, siempre habrá algún uso para ella. Pero considerando que las pantallas aparentemente oscilan entre 1080p y 1440p en los buques insignia, podríamos ver 4GB como un estándar razonable durante uno o dos años más.

Como conclusión, podemos responder a la pregunta: ¿tenemos realmente necesito ¿Tanta RAM ahora mismo? No, no lo hacemos. Para los dispositivos que tienen el precio como uno de los factores que deben mantener bajo, 3 GB o 4 GB de RAM les servirían bastante bien. Para los buques insignia con demanda de usuarios que no se preocupan tanto por los precios, no estaría de más estar preparados para el futuro. Como cliente, tenga en cuenta que todavía no utilizará toda esa RAM.

¿Qué opinas de los teléfonos con 6 GB de RAM? ¡Háganos saber su opinión en los comentarios a continuación!