Quelle est la différence entre la taille de l'ensemble de travail et de propagation?

lors du débogage des bogues D'origine, Quelle est la différence entre la taille du jeu de travail et celle de la propagation? Surtout quelle est la signification exacte de la taille de la validation?

26
demandé sur rogerdpack 2011-10-31 18:05:14

2 réponses

à Partir de ici , l'ensemble de travail est:

... compte de mémoire physique (RAM) plutôt que d'espace d'adresse virtuel. Il représente l' sous-ensemble de l'espace d'adressage virtuel est valide, sens qu'elle peut être référencée, sans encourir une défaillance de page.

La taille de validation est:

le montant total de l'espace d'adresse virtuelle pageable pour qui n' la sauvegarde est assignée autre que le fichier de la page. Sur les systèmes avec un pagefile, il peut être considéré comme le maximum de potentiel pagefile utilisation. Sur les systèmes sans pagefile, il est toujours compté, mais tout ce l'espace d'adresse virtuel doit rester dans la mémoire vive (RAM) temps.

donc vous pouvez penser à l'ensemble de travail comme la quantité de mémoire physique utilisée, tandis que la taille de propagation indique la quantité de mémoire virtuelle utilisée (sans choses comme Les fichiers DLLs ou memory mapped, qui peuvent être de retour par des fichiers autres que le fichier de la page).

cela dit, ces chiffres ne sont généralement pas utiles en essayant de trouver des" fuites de mémoire".NET. Au lieu de cela, vous devez utiliser tiers profileurs de mémoire .

22
répondu CodeNaked 2017-05-23 10:29:40

"Committed Memory or Commit Charge " " est tout RAM que le CPU a alloué, travaillé avec, ou travaille avec pour exécuter les applications et le système d'exploitation.

il s'agit d'une charge totale de la plate - forme, reflétant l'utilisation réelle de la mémoire-ou un manque de mémoire vive lorsque le fichier Pagefile entre en jeu. Que Commit Limit est égal à RAM installée (moins matériel réservé) ou RAM + Pagefile devrait être explicite lorsque l'on considère ce qui précède :)

Travail est pas une mesure de l'utilisation de la mémoire.

Travail est le niveau de priorité accordé aux données dans la mémoire RAM qui ne peut pas être transférées pour soulager la pression de la mémoire.

L'ensemble de travail d'un processus est dynamiquement assigné par le gestionnaire de mémoire OS (Gestionnaire de Balance).

https://msdn.microsoft.com/en-us/library/bb742613.aspx

Windows Système De Réglage Des Performances

le WS minimum le plus élevé autorisé pour les processus 32bit est de 4 Go, pour les processus 64bit il est de 8 Go. Il est seulement le minimum quantité de RAM garantie pour une application, l'utilisation réelle peut et est généralement beaucoup plus grande.

Cela est particulièrement vrai avec 32bit applications sur le matériel 64bit. Tout ce qui dépasse 4 Go n'est pas reflété dans l'ensemble de travail, parce qu'il est sur la liste d'attente.

par exemple Fallout New Vegas (une application 32bit) avec une tonne de mods peut manger 9 Go de RAM, 5 GO sera sur la liste D'attente.

il est facile de vérifier quelles données se trouvent en RAM à l'aide d'outils tiers (comme les systèmes).

Note: données en cache n'est pas comptabilisé contre la limite de propagation (habituellement les fichiers ouverts à partir du disque dur).

cache et de réserve est rincé d'abord pour revivre la pression de mémoire. Aucune de ces options n'est vraiment idéal. Mieux vaut avoir plus de mémoire vive que pas de mémoire libre. C'est pour ça Que RAM cache des données.

Commit Charge est également un bon moyen d'évaluer les exigences minimales de RAM pour une machine particulière Avec le PF activé Si Commit est plus élevé que RAM la différence de combien de RAM il a besoin.

IBM décrit la mémoire engagée comme mémoire système consommée .

( https: //www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.qb.server.doc/doc/c0057140.html )

Windows Internals décrit les Pages engagées comme pages qui se traduisent ultimement à la mémoire physique

( Microsoft Windows Internals 6th Edition , Chapter 10: Memory Management p. 195)

AMD définit s'Engager à irrévocablement écrire un formulaire d'instructions de la mémoire physique .

(http:/ développeur. amd.com/wordpress/media/2012/10/24593_APM_v21.pdf)

toute la RAM et le fichier Pagef combiné dans le contexte de L'OS est Mémoire virtuelle.

chaque adresse virtuelle doit se traduire par un stockage physique. Si ce n'est pas le cas, des erreurs peuvent se produire (pointeurs null, etc.).

"Processus de Travail" est ce que le processus d'sait que la RAM.

A Section Object est l'espace total de stockage physique qui peut être visualisé par le CPU. Que le stockage soit RAM ou HDD est sans importance. Sur 32 bits matériel un objet de section est de 4 Go. Sur le 64bit, C'est 256TB.

Un "segment" définit un cache virtuelle et "Travail" définit le niveau de cache.

https:// i.stack.imgur.com/9rZEW.jpg


Remarque: **** Les blogues Technet/MSDN désignent les objets de section comme "backup store" ou "pagefile backed sections" lorsqu'il est question de limites de mémoire.

"en général" (: P) ces blogs ont été publiés il y a près de 10 ans. (Une époque où Intel essayaient de conduire AMD dans le sol et Microsoft venait de paralyser XP/Vista 32 Tout en faisant la promotion de x64. Beaucoup connaîtront l'histoire (:P).

x86-32 comprend IA-32 et K7, qui sont tous deux maintenant des dinosaures.

AMD64 arrive avec K8. Intel64 avec C2D.


Intel états un L'instruction engagée peut être reprise et reportée. Je suppose que le retour en arrière est dû à HT et les moyens différés différé différé jusqu'à ce que le fichier de swap peut libérer la RAM (examinera cela). Intel® 64 et IA-32 Architectures Software Developer's Manual Volume 3B: Guide De Programmation Système, La Partie 217-10

les ingénieurs désignent parfois Commit Charge par" System Working Set "ou"CPU Working Set".

Ensemble De Travail Du Système Gestionnaire des Tâches et l'établissement de rapports.

https: //msdn.microsoft.com/en-us/library/bb742613.aspx

les Pages en RAM référencées par un CPU ne doivent jamais être jetées sur le disque car il y a toujours une chance que le CPU référencera ces pages à nouveau, et la RAM est une cache. Les ingénieurs systèmes ou ceux qui s'occupent des serveurs en sont déjà conscients..

en théorie, un objet de section peut être 128TB-256TB sur un matériel 64bit. Si un Le processus de 32bit touche un segment de 4GB qui limite les points CPU à un autre segment virtuel en RAM (pointeur far) et continue sur le trucking.

rien n'a changé, pas du tout du côté matériel.

c'est là que l'API 32bit est déficitaire. Les Pages référencées par un processus de 32 bits mais en dehors de son jeu de travail de 4 Go sont supposées être sur un fichier pagefile même si aucun fichier pagefile n'est présent.

les pages sont ajoutées en veille ou mises en cache en mémoire les fichiers cartographiés (cela peut être vu avec RAMMap).

-2
répondu Robert Fischer 2017-08-04 00:45:04