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.