21 votes

Comment une partition/fichier swap affecte-t-elle le système ?

Des amis m'ont dit que leurs téléphones Android avaient très peu de mémoire disponible (<100 Mo) pour les applications normales, car le système d'exploitation et certains services incontournables occupent la majeure partie de la RAM. Par exemple, un téléphone avec 512 Mo n'a que 90 Mo de mémoire disponible, ce qui fait que seules 2 ou 3 applications peuvent fonctionner en même temps.

Je me demande si la création d'une partition/fichier swap peut aider, mais j'ai vu des avis mitigés sur tout le web et je ne sais pas quoi faire. Voici mes questions :

(1) Y aura-t-il beaucoup de pages mémoire peu utilisées à échanger, en particulier dans le système d'exploitation et les services impossibles à tuer ?

(2) En quoi le remplacement de petites pages de mémoire peut-il nuire à la durée de vie de la mémoire flash ? Est-ce que la mémoire flash (ou la carte SD ?) fait un nivellement d'usure automatiquement ?

(3) Le swapping améliore-t-il vraiment les performances lorsque l'on utilise plusieurs applications ? Je suppose que si la réponse à la question (1) est oui, ce sera le cas.

(4) L'écriture sur la mémoire flash sera-t-elle trop lente, ce qui nuira à la réactivité lors des échanges ?

(5) Est-il vrai qu'Android conserve le mécanisme de swapping du noyau Linux, donc tant qu'il y a une partition/fichier de swapping, il fera du swapping sans configuration supplémentaire ?

Merci de votre lecture.

8voto

Thej Points 655

Je ne pense pas qu'il y aura beaucoup d'avantages à échanger pour Android, car le cycle de vie des applications Android est une forme beaucoup plus avancée d'échange.

(1) Y aura-t-il beaucoup de pages de mémoire peu utilisées à échanger, surtout surtout dans le système d'exploitation et les et les services impossibles à tuer ?

Vous ne pouvez pas échanger le noyau du système d'exploitation, même dans un Linux de bureau, et Android détruit déjà des services lorsqu'il a besoin de plus de RAM. Si le vendeur de votre appareil persiste à dire que vous devez avoir des services inutiles en permanence, alors enlevez la racine de votre appareil.

(2) Comment le remplacement d'une petite partie de la mémoire la durée de vie de la mémoire flash ? Est-ce que la mémoire flash (ou la carte SD ?) effectue automatiquement le niveau d'usure ?

Même si la carte SD est dotée d'un système de nivellement de l'usure, le remplacement de la carte sera très douloureux.

(3) L'échange sera-t-il vraiment utile ? performances lors de l'exécution de plusieurs applications ? Je suppose que si la réponse à la question (1) est oui, ce sera le cas.

Pas dans le contexte d'Android. Contrairement aux systèmes d'exploitation traditionnels qui continuent d'essayer d'ajouter des processus à votre demande, Android tue de force les processus anciens et inutilisés et récupère leur mémoire ; cette destruction est rapide car les applications ont déjà enregistré leur état lorsque vous changez de tâche.

(4) L'écriture sur la mémoire flash sera-t-elle trop lente ? et donc nuire à la réactivité lorsque l'échange de données ?

Probablement, probablement pas. Il faudra des benchmarks pour cela.

(5) Est-il vrai que Android conserve les mécanisme de swapping du noyau Linux Linux, donc tant qu'il y a une partition/fichier de partition/fichier de swapping, il le fera swapping sans configuration supplémentaire ?

Je ne sais pas si Android conserve le mécanisme de swapping, mais même s'il le fait (ou si vous compilez votre propre noyau), vous aurez toujours besoin de certaines configurations. Il suffit généralement d'avoir un fstab qui pointe vers le fichier d'échange et en faisant swapon -a .

En fait, j'ai des raisons pour lesquelles le swapping peut nuire aux performances : il empêche l'Application Life Cycle, le schéma de gestion de la mémoire d'Android, de fonctionner correctement.

6voto

endolith Points 2928

L'échange présente un avantage certain, malgré ce que tout le monde vous dira sur Internet. Essayez-le et voyez par vous-même. De manière empirique, sur un G1 ou un autre téléphone à faible mémoire, l'échange permet au téléphone de fonctionner mieux et plus rapidement.

Oui, Android a intégré la "gestion des tâches" du cycle de vie, mais elle n'est pas très bonne. Il tue systématiquement les processus lorsqu'il n'a plus de mémoire, et les applications sont censées sauvegarder leur état en utilisant " Liasses "de sorte que lorsque vous les redémarrez, ils redémarrent dans le même état que la dernière fois.

Une fois qu'Android détermine qu'il doit supprimer un processus, il le fait de manière brutale, en le tuant de force. Le noyau peut alors récupérer immédiatement toutes les ressources nécessaires au processus, sans compter que l'application doit être bien écrite et répondre à une demande polie de sortie. En permettant au noyau de récupérer immédiatement les ressources de l'application, il est beaucoup plus facile d'éviter les situations graves de manque de mémoire.

Ce serait formidable si cela fonctionnait réellement, et ce serait mieux que des échanges sans discernement. Mais les applications ne sauvegardent pas vraiment leur état ; elles ne sauvegardent que le minimum d'informations pour revenir à cet état. (Et certaines applications ne prennent même pas la peine de le faire.) Revenir à cet état prend du temps. Puisque swap sauvegarde en fait l'état complet de l'application, qui n'a plus qu'à être rechargé, le passage d'une application à l'autre est beaucoup plus rapide.

Si vous passez à une autre application à partir du navigateur, par exemple, le navigateur est presque toujours tué, et il doit recharger toute la page de l'Internet lorsque vous y revenez. Cela prend beaucoup plus de temps que de recharger l'état à partir du swap, gaspille votre argent si vous avez un forfait de données, et cause des problèmes d'état lorsque la page Web est dynamique.

De nombreuses applications prennent beaucoup plus de temps à démarrer qu'elles ne le devraient, ou ne reviennent pas au même état lorsqu'elles sont redémarrées, il est donc préférable de les remplacer.

Je suppose que les personnes qui sont satisfaites du système d'origine utilisent leur téléphone différemment.

Dois-je utiliser une partition swap avec Cyanogenmod ?

2voto

sambit rout Points 21

J'ai un Spice mi-435 (vendu uniquement en Inde) qui a une RAM de seulement 340M. Hell ya, les fichiers swap aider beaucoup. Mon téléphone exécute ICS sur une RAM aussi faible et est entré dans de nombreux états de mémoire et là, le fichier d'échange aide beaucoup. Tous les états des applications sont transférés dans le fichier d'échange lorsqu'ils ne sont pas utilisés. Cela donne à mon téléphone de la place pour plus d'applications et des applications gourmandes en RAM pour fonctionner en douceur avec beaucoup beaucoup beaucoup moins de décalage qu'avant. Cependant, il y a un problème lorsque j'ouvre l'application que j'utilisais auparavant. Il faut du temps pour charger son état, car la carte SD est beaucoup plus lente que la RAM haute vitesse intégrée. Mais, l'option d'échange est mieux pour si peu de RAM. Je recommanderais de swap partition pour RAM moins de 512M mais pas pour plus de 512M.

J'espère que cela vous sera utile.

1voto

Jamie Points 11

Le fichier swap est utile même sur les systèmes dotés d'une mémoire vive plus importante. Ma tablette quadruple cœur de 1 Go de RAM et de 7 pouces bénéficie d'un boost multitâche majeur en ajoutant un fichier swap de 2 Go sur la carte microSD uhs-1. Et bien sûr, le prix de la mémoire baisse rapidement, et même en écriture constante, la flash nand est censée durer des années.

Je suis d'avis, parce que la différence de performance est si radicale, que toute personne ne disposant pas d'une grande quantité de RAM devrait probablement faire cela. En fait, cela devrait probablement être une option standard dans Android (avec des caches d'applications plus grands et un cache internet de taille correcte).

Je veux dire que vous avez un micro sd (uhs-1) de 64-128gb, ou même le uhs-2 qui est sorti cette année, plus un nand interne de 16-64gb, souvent un nand "rapide", qui est une sorte de ssd primitif ou même SSD, comme ceux utilisés sur les ardoises Windows - vous ne remplissez pas exactement tout cet espace à haute vitesse avec beaucoup. La vitesse n'entre vraiment en jeu qu'avec la vidéo, ou le chargement d'applications en mémoire - ce qui est exactement l'usage ici.

Bien sûr, l'idéal serait que les fabricants se concentrent plus sur la RAM que sur la résolution ou les cœurs supplémentaires, car il est clair que la vitesse du système bénéficie beaucoup d'une RAM plus élevée - et ils devraient probablement aussi augmenter la vitesse du stockage interne (comme passer à des systèmes de type full ssd, ou au minimum à des systèmes nand "rapides". Mais en attendant, alors que les hautes résolutions ont tendance à causer une sorte de déficit de RAM dans tous les appareils, un fichier d'échange, et la mise en cache sur un sd externe raisonnablement rapide a beaucoup de sens.

La plupart des navigateurs sont soit lents, soit peu performants, mais rarement rapides et performants - et c'est en partie parce que l'espace pour le cache des applications sur le disque interne est minuscule. Ils sont conçus pour fonctionner dans un environnement à faible mémoire et stockage, et cette histoire est en train de changer. Même si la mémoire vive n'est pas aussi performante qu'elle devrait l'être, le stockage l'est certainement, et il peut être sacrément rapide avec les normes UHS-1 (ou les normes UHS-2 publiées cette année), même s'il n'est pas "rapide" ou ssd.

Et le coût de la mémoire externe, c'est vraiment des cacahuètes, même pour les uhs-1 de plus grande capacité. Au moins un uhs-1 de 64 gb est parfaitement abordable (50 dollars là où je suis, mais ce serait moins USD), beaucoup moins cher que l'appareil, et 32 gb et moins est essentiellement un couple de tenners.

Il y a beaucoup de leçons à tirer de l'ordinateur de bureau, surtout maintenant que les spécifications sont de plus en plus élevées - le lien de performance le plus lent est le chargement du stockage à la mémoire vive. Plus vous pouvez faire pour atténuer ce problème, mieux c'est.

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