1 votes

Quelle quantité de RAM dois-je permettre à une application d'utiliser, et quelle quantité dois-je toujours laisser libre ?

J'ai un application d'échecs sur ma Nexus 7 2012 (fonctionnant sous Android 4.3, avec quelques petits services en arrière-plan) qui me permet de régler la taille d'une table de hachage interne utilisée par le moteur d'échecs. Des tables de hachage plus grandes augmentent les performances du moteur d'échecs, mais elles sont finalement limitées par la mémoire vive disponible sur la tablette. En règle générale, l'application Paramètres indique qu'environ 450-500 Mo de RAM sont disponibles.

Quelle quantité de mémoire dois-je permettre à l'application d'utiliser, et quelle quantité dois-je laisser libre pour le système ? Comme je ne souhaite pas modifier ce paramètre trop souvent, puis-je compter sur la disponibilité de cette quantité de mémoire à chaque fois que j'utilise l'application ? (Notez que la quantité de mémoire utilisée doit toujours être une puissance de 2).

Les autres questions et réponses que j'ai lues n'ont pas vraiment répondu à cette question, je ne pense donc pas qu'il s'agisse d'un doublon.

4voto

Andy Brudtkuhl Points 1714

Si vous avez lu un peu partout, vous avez déjà compris que l'idée de "RAM libre" est un peu absurde pour Android. Les systèmes d'exploitation pour PC retirent une application de la RAM dès que vous la quittez, ce qui laisse un espace vide que le PC doit probablement utiliser pour le remplir à nouveau par la suite - probablement avec la même application la prochaine fois que vous l'utiliserez. Android tente d'éviter ce gaspillage en laissant les applications en mémoire après que vous avez cessé de les utiliser ou qu'elles ont fini de s'exécuter, afin qu'elles soient prêtes à être exécutées à nouveau la prochaine fois. S'il a besoin de plus de RAM pour une application, ce n'est qu'à ce moment-là qu'il se débarrasse de ces applications. processus mis en cache .

Android se débarrasse d'abord des processus mis en cache, en fonction du délai dans lequel il pense en avoir besoin à nouveau. S'il a toujours besoin de plus de RAM pour l'activité de premier plan, il se débarrassera des processus d'arrière-plan. services (qui synchronisent votre courrier électronique, etc. mais ne sont pas directement visibles). S'il a encore besoin de plus de mémoire vive, il se débarrassera des activités qui sont directement accessibles mais qui ne sont pas visibles actuellement, comme le lanceur, l'activité à laquelle vous reviendrez lorsque vous appuierez sur la touche retour (peut-être même dans la même application que l'activité en cours d'exécution), ou l'activité grisée qui est partiellement visible derrière un dialogue. De cette manière, même si vous n'avez pas de RAM libre, Android peut libérer une grande quantité de RAM pour l'activité de premier plan : toute la RAM de l'appareil, à l'exception de celle nécessaire à Android lui-même.

Je suggère de trouver le meilleur réglage en procédant par essais et erreurs. Sans une connaissance plus approfondie de l'application, je ne peux pas prédire l'effet d'un réglage trop bas : peut-être l'IA fera-t-elle de moins bons coups ou prendra-t-elle plus de temps pour se décider. Si le réglage est trop élevé, vous remarquerez que lorsque vous quittez la partie d'échecs, vous devez attendre que l'application précédente se lance : c'est particulièrement visible lorsqu'il s'agit du lanceur et que vous obtenez un indicateur de progression qui tourne au lieu de la liste des applications.

S'il s'agissait d'une de mes applications, je considérerais qu'il s'agit d'un bogue. Il n'est pas très correct de donner à l'utilisateur un paramètre sans qu'il puisse savoir quelle valeur lui attribuer. L'application dispose de plus d'informations que vous sur la quantité de RAM dont dispose l'appareil et qu'il peut mettre à disposition : elle devrait décider elle-même.

0voto

JonTheNiceGuy Points 376

Si une application Android permet de configurer la quantité de RAM utilisée pour échanger de la RAM contre des besoins moindres en CPU, la seule façon de déterminer la quantité "correcte" est d'essayer différentes valeurs et de réduire la valeur si le système entier devient trop lent.

Comme l'explique Dan Hulme, Android ferme automatiquement les applications jusqu'à ce que l'application au premier plan obtienne la mémoire vive dont elle a besoin. Si votre application d'échecs consomme presque toute la mémoire, l'ensemble du système deviendra lent parce qu'il sera constamment en train de fermer et de redémarrer des applications pour, par exemple, vérifier si vous avez un nouveau courrier et si vous avez de nouvelles notifications de Facebook - lorsque la RAM est faible, ces deux opérations ne peuvent pas être effectuées en parallèle, mais les deux applications feront leur travail de manière répétée, de sorte qu'Android finira par arrêter et démarrer ces applications tout le temps. Notez que l'arrêt et le démarrage des applications consomment beaucoup de batterie, même si vous n'avez pas de problèmes de performance visibles.

Notez que le réglage correct dépend des autres applications que vous exécutez sur votre appareil. Je commencerais par 100 Mo et je testerais les performances. Ensuite, testez 50 Mo et 200 Mo et voyez si l'une ou l'autre de ces valeurs accélère le programme d'échecs sans ralentir les performances globales du système.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X