"Mem Usage" plus élevé que "VM Size" dans WinXP Task Manager
Dans mon Windows XP Gestionnaire des Tâches, certains procédés d'affichage d'une valeur plus élevée dans la colonne Utilisation de la mémoire de la VMSize. Mon Firefox, par exemple, montre 111544 K mem utilisation et 100576 K VMSize.
Selon le fichier d'aide du Gestionnaire des Tâches Mem Utilisation est l'ensemble du processus de travail et VMSize est le commis de la mémoire dans l'espace d'adressage Virtuel.
Ma question est, si le nombre de pages pour un processus est un et le nombre de pages de mémoire physique pour le même processus est B, il ne devrait pas toujours être B ≤ A? N'est pas le nombre de pages de mémoire physique pour traiter un sous-ensemble de pages?
Ou est-ce quelque chose à voir avec le partage de la mémoire entre les processus? Veuillez expliquer. (Peut-être ma définition de "Travailler Ensemble" est au large de la marque).
Grâce.
source d'informationauteur Frederick The Fool
Vous devez vous connecter pour publier un commentaire.
De La Mémoire Virtuelle
Supposons que votre programme (par exemple, Oracle) a alloué 100 MO de mémoire au démarrage - votre taille de mémoire virtuelle, qui va jusqu'à 100 MO si aucune autre physique /pages de disque sont touchés. ie VM n'est rien, mais la mémoire de la tenue des livres.
La mémoire physique disponible totale + fichier de pagination de la mémoire est la quantité maximale de mémoire que TOUS les processus dans le système peut allouer. Le système ne présente donc qu'il peut s'assurer qu'à chaque point de temps si le processus de réellement commencer à consommer tous qu'elle allouer de la mémoire le système d'exploitation peut fournir le physique de pages requis.
Mémoire Privée
Si le programme copie les 10 MO de données de 100 MO, OS détecte qu'aucune page n'a été alloué au processus correspondant à ces adresses et l'attribue à 10 MO de pages physiques dans votre privé du processus de la mémoire. (Ce processus est appelé erreur de page)
Jeu De Travail
Définition : ensemble de Travail est l'ensemble des pages de mémoire qui ont été récemment touché par un programme.
À ce point ces 10 pages sont ajoutées à l'ensemble du processus de travail. Si le processus va alors et des copies de ces données dans un autre de 10 MO de mémoire cache précédemment alloué, tout le reste est le même, mais le Jeu de passe de nouveau par 10 Mo si ces vieilles pages où elles ne sont pas dans le jeu. Mais si ces pages où déjà dans le jeu de travail, alors tout est bon et les programmes de jeu de travail reste la même.
De travail Définir le comportement
Imaginez votre processus ne touche jamais les 10 premières pages à jamais, dans ce cas, ces pages sont coupées à partir de votre processus de travail de définir et éventuellement envoyé le fichier de page de sorte que le système d'exploitation peut apporter dans les autres pages qui sont le plus fréquemment utilisé. Cependant, si il n'y a aucune urgence à faible mémoire les exigences de la présente loi, de la pagination n'a pas besoin d'être fait et les OS peuvent agir comme si son riche dans la mémoire. Dans ce cas, le jeu de travail permet tout simplement ces pages restent.
Quand est Jeu de Travail > Mémoire Virtuelle
Maintenant, imaginez le même programme de-alloue tous les 100 Mo de mémoire. Les programmes de la taille de mémoire virtuelle est immédiatement réduit de 100 MO (souvenez-vous de la VM = la tenue des livres de toutes les demandes d'allocation de mémoire)
Le jeu de travail ne doivent pas être affectées par la présente, puisque cela ne change pas le fait que ces 10 Mo de pages où il y a peu touché. Par conséquent, ces pages restent dans l'ensemble du processus de travail si le système d'exploitation peut les récupérer à chaque fois qu'il exige.
Ce serait un moyen efficace de faire de la VM < travailler ensemble. Cependant, cela va permettre de corriger si vous commencez à un autre processus qui consomme plus de mémoire et le travail de définir les pages sont récupérés par le système d'exploitation.
XP est un Gestionnaire de Tâche est tout simplement faux. EDIT: Si vous ne me croyez pas (et que quelqu'un ne le fait pas, parce qu'ils avaient voté ce bas), lire Firefox 3 L'Utilisation De La Mémoire. Je cite:
Sonne comme MS suis confus. Vous seul changement, quelque chose comme ça si c'est cassé.
Essayer Process Explorer à la place. Ce Gestionnaire de Tâches étiquettes "Taille de mémoire virtuelle", Process Explorer (plus correctement) les étiquettes "Octets Privés". Et dans l'Explorateur de Processus, Jeu de Travail (et d'Octets Privés) sont toujours inférieure ou égale à la Taille Virtuelle, comme vous le souhaitez.
De mappage de fichier
Moyen très courant comment Mem Utilisation peut être plus élevé que la Taille de mémoire virtuelle est en utilisant le fichier de mappage des objets (d'où elle peut être liée à la mémoire partagée, comme de mappage de fichier est utilisé pour partager de la mémoire). Avec le fichier de mappage, vous pouvez avoir une mémoire qui s'est engagé (soit dans le fichier de page ou dans la mémoire physique, vous ne connaissez pas), mais n'a pas d'adresse virtuelle est attribué. Le commis de la mémoire apparaît dans Mem Utilisation, tandis que les adresses virtuelles utilisation est suivie par la Taille de mémoire virtuelle.
Voir aussi:
Ce n' “Taille de mémoire virtuelle” dans le Gestionnaire des Tâches de Windows? sur Stackoverflow
La rupture de la 32 bits de la Barrière dans mon blog des développeurs
De discussion Usenet, Encore confus pourquoi de travail plus grand que la mémoire virtuelle
L'utilisation de la mémoire est la quantité de mémoire électronique actuellement alloué au processus.
Taille de mémoire virtuelle est la quantité de mémoire virtuelle actuellement alloué au processus.
donc ...
Quelques exemples pour illustrer:
Actuellement sur ma machine, iexplore de 16 000 K Utilisation de la Mémoire et 194,916 Taille de mémoire virtuelle. Cela signifie que la plupart de la mémoire utilisée par Internet Explorer est en mode veille et a été transférée sur le disque, et une fraction seulement est conservé dans la mémoire principale.
Contraste avec mcshield.exe avec a 98,984 K utilisation de la mémoire et 98,168 K Taille de mémoire virtuelle. Ma conclusion ici est que McAfee AntiVirus est actif, avec beaucoup de mémoire en cours d'utilisation. Depuis qu'il est en cours depuis un certain temps (toute la journée, depuis le démarrage), j'attends que la plupart des 98,168 K Taille de mémoire virtuelle est la copie de la mémoire électronique - si il n'y a rien dans le Gestionnaire des Tâches pour le confirmer.
Vous trouverez peut-être quelque explication dans La Mémoire Shell Game
Jeu de travail (A) – C'est un ensemble de pages de mémoire virtuelle (qui sont commis) pour un processus et sont situés dans la RAM physique. Ces pages appartiennent entièrement au processus. Un ensemble de travail est comme un "actuellement/récemment travaillé sur ces pages" liste.
De la Mémoire virtuelle – C'est un souvenir que d'un système d'exploitation peut faire face. Quelle que soit la quantité de RAM physique ou de l'espace sur le disque dur, ce nombre est limité par l'architecture de votre processeur.
Commis Mémoire – Lorsqu'une application touche une page de mémoire virtuelle (lecture/écriture/par programme commits), la page devient une page validée. Il est maintenant soutenu par une mémoire physique de la page. Ce sera généralement une quantité de RAM physique page, mais pourrait éventuellement être une page d'un fichier d'échange sur le disque dur, ou il peut être une page dans un fichier mappé en mémoire sur le disque dur. Le gestionnaire de mémoire gère les traductions à partir de la page de mémoire virtuelle à la page physique. Une page virtuelle pourrait être situé dans la RAM physique, tandis que la page suivante pourrait être sur le disque dur dans le fichier de la page.
MAIS: PF (Fichier de Page) Utilisation - C'est le nombre total de pages sur le système. Il ne vous dit pas combien sont réellement écrites sur le fichier de la page. Il vous dira combien de fichier de page serait utilisé si toutes les pages ont dû être écrites dans le fichier de la page en même temps.
Donc B >...
Si nous sommes d'accord que B représente "mem utilisation" ou aussi l'utilisation de la PF, le problème vient du fait qu'il représente réellement potentiel page usages: sous Xp, ce potentiel de l'espace fichier peut être utilisé comme un lieu d'attribuer ces pages de mémoire virtuelle que les programmes ont demandé, mais jamais mis en service...
Fragmentation de la mémoire est probablement la raison:
Si le processus alloue 1 octet, il compte pour 1 octet dans le VMSize, mais cette 1 octet exige une page physique (4K sur le système d'exploitation windows).
Si, après allocation/libération de la mémoire, le processus a un deuxième octet est séparée par plus de 4K à partir de la première, cette deuxième octet sont toujours stockés sur une autre page que la 1 un.
De sorte que la Taille de mémoire virtuelle comte est de 2 octets, mais l'Utilisation de la Mémoire est de 2 pages== 8K
Donc le fait que MemUsage est plus grand que VMSize montre que le processus ne beaucoup de l'allocation et de libération de la mémoire et des fragments de la mémoire.
Ce pourrait être parce que le processus a commencé il ya longtemps.
Sinon il ya la place pour l'optimisation 😉