1 votos

¿Cuánta RAM debo permitir que use una aplicación y cuánta debo dejar siempre libre?

Tengo un aplicación de ajedrez en mi Nexus 7 de 2012 (que ejecuta Android 4.3 de serie, con algunos pequeños servicios en segundo plano) que me permite establecer el tamaño de una tabla hash interna utilizada por el motor de ajedrez. Las tablas hash más grandes aumentan el rendimiento del motor de ajedrez, pero en última instancia está limitado por la memoria RAM disponible en la tablet. Normalmente, la aplicación de Ajustes indica que hay unos 450-500 MB de RAM libres.

¿Cuánta memoria debo permitir que utilice la aplicación y cuánta debo dejar libre para el sistema? Como no quiero cambiar esta configuración muy a menudo, ¿puedo confiar en que esta cantidad de memoria esté disponible cada vez que utilice la aplicación? (Ten en cuenta que la cantidad de memoria utilizada debe ser siempre una potencia de 2).

Las otras preguntas y respuestas que he leído no han respondido realmente a esta pregunta, así que no creo que esto sea un duplicado.

0 votos

Si quieres más ideas sobre este tema, considera publicar esta pregunta en el sitio de Chess SE ( ajedrez.stackexchange.com ). Salud.

4voto

Andy Brudtkuhl Puntos 1714

Si has leído por ahí, ya habrás leído que la idea de "memoria RAM libre" es una tontería para Android. Los sistemas operativos de los PC sacan una aplicación de la memoria RAM en cuanto la abandonas, lo que deja un espacio vacío que el PC probablemente tenga que volver a llenar, probablemente con la misma aplicación la próxima vez que la ejecutes. Android intenta evitar este desperdicio dejando las aplicaciones en la memoria después de que dejes de usarlas o después de que terminen de ejecutarse, para que estén listas para ejecutarse de nuevo la próxima vez. Si necesita más memoria RAM para una aplicación, sólo entonces se deshace de estas procesos en caché .

Android se deshará primero de los procesos en caché, en función de lo pronto que crea que va a necesitarlos de nuevo. Si todavía necesita más RAM para la actividad en primer plano, se deshará de los procesos en segundo plano. servicios (que sincronizan tu correo electrónico, etc., pero no son visibles directamente). Si todavía necesita más RAM, se deshará de las actividades que son directamente accesibles pero que no son visibles actualmente, como el lanzador, la actividad a la que volverás cuando pulses volver (tal vez incluso en la misma aplicación que la actividad que se está ejecutando), o la actividad en gris que es parcialmente visible detrás de un diálogo. De esta manera, aunque no tengas RAM libre, Android puede liberar bastante RAM para la actividad en primer plano: toda la RAM del dispositivo, excepto la que necesita el propio Android.

Sugiero que se elabore la mejor configuración mediante el método de prueba y error. Sin conocer mejor la aplicación, no puedo predecir el efecto de un ajuste demasiado bajo: quizá la IA haga peores movimientos o tarde más en decidir. Si la configuración es demasiado alta, notarás que cuando sales de la partida de ajedrez tienes que esperar a que se inicie la aplicación anterior: esto es particularmente notable cuando es el lanzador, y obtienes un indicador de progreso giratorio en lugar de la lista de aplicaciones.

Si se tratara de una de mis aplicaciones, lo consideraría un error. Es una mala forma de dar al usuario un ajuste sin saber qué valor establecer. La aplicación tiene más información sobre la cantidad de RAM que tiene el dispositivo y que puede poner a disposición que tú: debería decidir por sí misma.

0voto

JonTheNiceGuy Puntos 376

Si una aplicación de Android proporciona una forma de configurar la cantidad de RAM utilizada para intercambiar RAM por menores requisitos de CPU, la única forma de decidir la cantidad "correcta" es probar diferentes valores y escalar el valor hacia abajo si todo el sistema se vuelve demasiado lento.

Como explica Dan Hulme, Android cerrará automáticamente las aplicaciones hasta que la aplicación en primer plano obtenga la RAM que necesita. Si tu aplicación de ajedrez se come casi toda la memoria, todo el sistema se volverá lento porque estará constantemente cerrando aplicaciones y reiniciando aplicaciones para, por ejemplo, comprobar si tienes un nuevo correo y para comprobar si tienes nuevas notificaciones de Facebook - cuando la RAM es baja, ambas cosas no se pueden hacer en paralelo, sino que ambas aplicaciones harán repetidamente lo suyo, por lo que Android acabará parando e iniciando esas aplicaciones todo el tiempo. Ten en cuenta que parar e iniciar aplicaciones consume mucha batería aunque no tengas problemas visibles de rendimiento.

Ten en cuenta que la configuración correcta depende de las otras aplicaciones que estés ejecutando en tu dispositivo. Yo empezaría con 100 MB y probaría el rendimiento. Luego prueba con 50 MB y 200 MB y comprueba si cualquiera de los dos valores hace que el programa de ajedrez sea más rápido sin ralentizar el rendimiento general del sistema.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X