34 votes

Que signifient les termes "sale" et "résident" dans le contexte de la mémoire virtuelle ?

J'ai abandonné le programme de CS de mon université... Alors, est-ce que quelqu'un qui a une bonne compréhension de l'informatique peut me dire ce qu'il en est ? Quelle est la signification des termes "sale" et "résident" en ce qui concerne la mémoire virtuelle ? Et, pour les points bonus, qu'est-ce que la mémoire virtuelle ? J'utilise l'outil Allocations/VM Tracker dans Instruments pour analyser une application iOS.

* Indice - essayez d'expliquer comme si vous parliez à un enfant de 8 ans ou à un imbécile. Merci les gars.

44voto

blueberryfields Points 7097

La "mémoire sale" est la mémoire qui a été modifiée d'une manière ou d'une autre - c'est la mémoire que le ramasseur d'ordures doit examiner, puis décider de ce qu'il faut en faire. Selon la manière dont vous construisez vos structures de données, vous pouvez faire en sorte que le ramasse-miettes marque une grande partie de la mémoire comme sale, ce qui fait que chaque cycle de ramassage des ordures prend plus de temps que nécessaire. En maintenant ce nombre à un niveau bas, votre programme s'exécutera plus rapidement et sera moins susceptible de subir des pauses notables du ramasse-miettes. Pour la plupart des gens, ce n'est pas vraiment un problème.

La "mémoire résidente" est la mémoire qui est actuellement chargée dans la mémoire vive, c'est-à-dire la mémoire qui est réellement utilisée. Bien que votre application puisse nécessiter le suivi d'un grand nombre d'éléments différents dans la mémoire, il se peut qu'un petit sous-ensemble seulement soit accessible à tout moment. En maintenant ce nombre à un niveau peu élevé, votre application présente des temps de chargement plus courts, joue bien avec les autres et réduit le risque de manquer de mémoire et de tomber en panne pendant l'exécution de votre application. C'est probablement le nombre auquel vous devriez prêter attention, la plupart du temps.

La "mémoire virtuelle" est la quantité totale de données que votre application garde en mémoire à tout moment. Ce nombre est différent de ce qui est utilisé activement (ce qui est utilisé est marqué comme "mémoire résidente") - le système gardera les données qui sont suivies mais non utilisées par votre application ailleurs que dans la mémoire réelle. Il peut, par exemple, les enregistrer sur le disque.

3voto

Robert Points 10822

WWDC 2013 - 410 Correction des problèmes de mémoire Cela s'explique très bien. Elle vaut la peine d'être regardée car elle explique également certaines des implications pratiques de la mémoire sale, résidente et virtuelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X