Pourquoi l'utilisation de ma mémoire privée est-elle si faible comparée à la mémoire de validation?

0

Après 120 heures de disponibilité stable sur un ordinateur Windows 7 (avec des hibernations au lieu de redémarrer entre plusieurs jours), Windows a fait quelque chose d'étrange: les programmes consomment une grande quantité de mémoire comme d'habitude, mais l'utilisation des ensembles de travail privés (ce qui est rapporté par Task Manager) est si faible par rapport à la mémoire réellement engagée.

Habituellement, l'utilisation de l'ensemble de travail est à peu près identique à celle du commit, mais étrangement pas ici dans Resource Monitor:

Très faible usage privé, très grand commit

Sur ces processus, la consommation des postes de travail privés ne change presque pas. C'est comme si Windows mettait ces processus en arrière-plan sur la cryostase.

Pourquoi cela arrive-t-il? Le temps de disponibilité prolongé affecte-t-il le comportement de la mise en cache?

oldmud0
la source
Je suis surpris de voir que vous voyez généralement set set = commit, car ils signifient des choses presque opposées. Commit Charge fait référence à la quantité d'un processus qui est uniquement dans le fichier d'échange, alors que Working set ne fait référence qu'aux données en RAM. il serait surprenant que la division soit de 50/50. fr.wikipedia.org/wiki/Commit_charge Personnellement, le fait que 80% de la RAM soit utilisée est une explication convaincante de la raison pour laquelle les groupes de travail privés sont faibles et le commit élevé. L'engagement doit être égal à Octets privés - Ensemble de travail privé. superuser.com/questions/618686/…
Frank Thomas
2
Rappelez-vous également que votre RAM est complètement déplacée vers le fichier d'échange et vers hiberfil.sys lors de l'hibernation. Par conséquent, si ces processus ne sont pas actifs depuis l'hibernation, il est logique que la majorité de leur contenu réside dans le fichier d'échange.
Frank Thomas
@FrankThomas Votre affirmation concernant la charge de validation est incorrecte. Commit charge fait référence à l'espace d'adressage virtuel "privé engagé" d'un processus, c'est-à-dire au nom duquel le fichier d'échange est le magasin de support . Mais cela ne signifie pas que tout se trouve dans le fichier d'échange! Nous pouvons toutefois dire que si tout le processus devait être déplacé, c’était tout l’espace requis pour le fichier d'échange. Dans des conditions normales, une partie n’est nulle part (car elle n’a pas encore été touchée et n’a donc pas été "mise en faute"); certains (en particulier le dernier sous-ensemble) seront en RAM; et le reste dans le fichier d'échange.
Jamie Hanrahan
Bien sûr, si vous n’avez pas de fichier de page, tout le contenu commis est en RAM tout le temps. Cela s'appelle toujours "commettre la charge".
Jamie Hanrahan