"Mem Usage" höher als "VM Size" in WinXP Task-Manager
In meinem Windows XP Task-Manager einige Prozesse, die Anzeige einen höheren Wert in der Speicherauslastung, als die VMSize. Mein Firefox-Instanz, zum Beispiel zeigt 111544 K als mem-Nutzung und 100576 K wie VMSize.
Laut der Hilfe-Datei des Task-Manager CPU-Auslastung ist der working set des Prozesses und VMSize ist der zugesicherte Speicher im Virtuellen Adressraum.
Meine Frage ist, wenn die Anzahl der übermittelten Seiten für ein Prozess ist und die Anzahl der Seiten im physischen Speicher für den gleichen Prozess B ist, sollte es nicht immer sein, B ≤ A? Nicht die Anzahl der Seiten im physischen Speicher pro Prozess eine Teilmenge der übermittelten Seiten?
Oder ist dies etwas zu tun mit der Freigabe von Speicher durch Prozesse? Bitte erklären. (Vielleicht ist meine definition von "Working Set" ist aus der Marke).
Dank.
InformationsquelleAutor Frederick The Fool | 2008-10-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Virtuellen Speicher
Davon ausgehen, dass ein Programm (z.B. Oracle) reserviert 100 MB Speicher auf startup - VM-Größe geht bis zu 100 MB, obwohl keine zusätzliche physikalische /disk-Seiten berührt werden. dh-VM ist nichts anderes als memory book zu halten.
Den gesamten verfügbaren physischen Speicher + Auslagerungsdatei-Speicher ist die maximale Speichermenge an, die ALLE Prozesse im system zuweisen kann. Das system tut dies so, dass es sicherstellen kann, dass an jedem Punkt der Zeit, wenn die Prozesse tatsächlich verbrauchen alle, dass Speicher reserviert das OS liefern die tatsächlichen physischen Seiten benötigt.
Privaten Speicher
Wenn das Programm kopiert 10 MB Daten in das 100 MB, Betriebssystem Sinne, dass keine Seiten zugeordnet wurden, um den Prozess entsprechend an die Adressen und ordnet 10 MB im Wert von physischen Seiten in Ihrem Prozess der privaten Erinnerung. (Dieser Vorgang wird als page fault)
Working Set
Definition : Working set ist ein Satz von Speicherseiten, die vor kurzem berührt hat, Programm.
An dieser Stelle diese 10 Seiten Hinzugefügt werden, um das working set des Prozesses. Wenn der Prozess geht dann und kopiert diese Daten in weiteren 10 MB cache vorher reserviert, alles andere bleibt gleich, aber der Arbeitssatz geht wieder von 10 Mb, wenn die alten Seiten, wo nicht im working set. Aber wenn diejenigen Seiten, auf denen bereits in der working set, dann ist alles gut und die Programme arbeiten eingestellt bleibt die gleiche.
Working Set Verhalten
Stellen Sie sich Ihr Prozess berührt nie die ersten 10 Seiten immer wieder, in welchem Fall diese Seiten sind abgeschnitten von Ihrem Prozess-working-set und eventuell an die Seite gesendet-Datei, so dass die OS bringen können, in andere Seiten, die häufiger eingesetzt werden. Allerdings, wenn es keine dringende geringer Speicherbedarf, dann wird dieser Akt der Auslagerung muss nicht getan werden, und OS handeln können, als wenn sein Reich in Erinnerung. In diesem Fall ist der working set einfach können Sie diese Seiten bleiben.
, Wenn Sie ist Working Set > Virtueller Arbeitsspeicher
Nun stellen Sie sich das gleiche Programm de-ordnet alle 100 Mb Speicher. Die Programme VM-Größe reduziert sich sofort um 100 MB (denken Sie daran VM = Buchhaltung aller Speicherzuordnung)
Die arbeiten einstellen müssen, ist davon nicht betroffen, denn das ändert nichts an der Tatsache, dass die 10 Mb im Wert von Seiten, auf denen vor kurzem berührt. Daher werden diese Seiten immer noch in der working set des Prozesses, obwohl das OS kann zurückgefordert werden, wenn es erforderlich ist.
Dies würde effektiv machen das VM < working set. Allerdings wird dies beheben, wenn Sie beginnen, ein anderer Prozess, der verbraucht mehr Speicher und der working set-Seiten aufgeteilt, die vom Betriebssystem.
Obwohl, ich glaube nicht, dass 'Zuweisung' von 100 MB führt sofort zu VMSize Erhöhung von 100 MB. Zumindest in Windows, die 100MBy werden der Aufschrift "Reserviert". Wenn Sie schreiben, Ihre 10MB irgendwo in die 100MB dann, 10MB markiert "Engagiert" und VMSize erhöht von 10 MB (nicht 100).
Ich denke, was Sie desribe in "Wann ist der Working Set - > Virtueller Arbeitsspeicher" falsch ist, mit der einzigen Ausnahme, und das ist, wenn Sie unmap-Datei zugeordnete Seiten. Sonst weiß das system, Prozess, hat nicht mehr, wie verwenden Sie die Seiten wieder und freigibt.
Lief einige tests - reserviert 100MB und sowohl mem + VM ging. Uponw riting nur 10 Mb die CPU-Auslastung sank auf 10M
Wenn ich zugeteilt 1024 MB VM-Größe von 1024 Mb, aber CPU-Auslastung blieb bei einem beliebigen Wert von 35 MB oder so. Schreiben 10MB, nachdem diese nicht erhöhen, Mem-Auslastung, da Mem-Nutzung bereits enthalten sind die ersten 10 MB, nehme ich an.
InformationsquelleAutor computinglife
XP-Task-Manager ist schlicht und einfach falsch. EDIT: Wenn du mir nicht glaubst (und nicht jemand, weil Sie meinten, das down), Lesen Firefox 3 Memory Nutzung. Ich zitiere:
Klingt wie MS verwirrt. Ändern Sie nur etwas wie, dass, wenn es kaputt ist.
Versuchen Process Explorer statt. Was Task-Manager Etiketten "VM Size" -, Prozess-Explorer (mehr richtig) - labels "Private Bytes". Und in Process Explorer Arbeiten-Satz (und die Privaten Bytes) sind immer kleiner als oder gleich Virtuelle Größe, wie man es erwarten würde.
Du bist nicht verwirrend die Begriffe. Ich habe bearbeitet meine Antwort zu geben, mehr info.
InformationsquelleAutor Hugh Allen
Datei mapping
Sehr verbreitete Art und Weise, wie Mem-Nutzung höher sein kann als die Größe des virtuellen Speichers wird durch die Verwendung der Datei-mapping-Objekte (daher kann es sein, in Bezug auf shared-memory -, file-mapping, wird verwendet, um den Speicher freigeben). Mit Datei-mapping können Sie ein Gedächtnis haben, die sich (entweder in der page-Datei oder im physikalischen Speicher, die Sie nicht kennen), hat aber keine virtuelle Adresse zugewiesen. Der zugesicherte Speicher, erscheint in der Mem-Auslastung, während die verwendeten virtuellen Adressen-Nutzung wird verfolgt von VM-Größe.
Siehe auch:
Was bedeutet "VM-Größe" bedeutet in der Windows-Task-Manager? auf Stackoverflow
Brechen Sie die 32-bit-Barriere in meinem Entwickler-blog
Usenet-Diskussion Immer noch verwirrt, warum die arbeiten eingestellt, die größer als virtuellen Speicher
InformationsquelleAutor Suma
Speichernutzung ist der Betrag, der elektronische Speicher, die derzeit an den Prozess reserviert.
VM-Größe ist der Betrag des virtuellen Speichers, die derzeit an den Prozess reserviert.
so ...
Einige Beispiele zur illustration:
Derzeit auf meinem Rechner, iexplore hat 16.000 K Speicherauslastung und 194,916 VM-Größe. Dies bedeutet, dass die meisten der Speicher von Internet Explorer verwendet wird, ist im Leerlauf und wurde auf die Festplatte ausgelagert, und nur ein Bruchteil wird gehalten im Hauptspeicher.
Kontrast mit mcshield.exe mit hat 98,984 K Speicherauslastung und 98,168 K VM-Größe. Mein Fazit hier ist, dass McAfee AntiVirus aktiv ist, mit zu viel Speicher in Verwendung ist. Da es seit geraumer Zeit (den ganzen Tag, seit dem Booten), erwarte ich, dass die meisten der 98,168 K VM-Größe, sind Kopien der elektronischen Speicher - obwohl nichts im Task-Manager, um dies zu bestätigen.
InformationsquelleAutor Bevan
Finden Sie vielleicht einige Erklärungen in Die Memory Shell Game
Working Set (A) – Dies ist ein Satz von virtuellen Speicher-Seiten (, die sich) für einen Prozess, und befinden sich im physischen RAM. Diese Seiten vollständig gehören, um den Prozess. Arbeit ist wie ein "aktuell/vor kurzem die Arbeit an diesen Seiten" - Liste.
Virtuellen Speicher – Dies ist eine Erinnerung, dass ein Betriebssystem-Adresse. Unabhängig von der Größe des physischen RAM oder Platz auf der Festplatte, diese Zahl ist begrenzt durch Ihre Prozessor-Architektur.
Zugesicherter Speicher – Wenn eine Anwendung berührt eine Seite im virtuellen Speicher (Lesen/schreiben/programmatisch verpflichtet) die Seite wird eine engagierte Seite. Es ist jetzt gesichert durch eine physikalische Speicherseite. Dies wird in der Regel ein Physischer RAM-Seite, konnte aber schließlich eine Seite in der Auslagerungsdatei auf der Festplatte, oder es könnte eine Seite in eine memory-mapped-Datei auf der Festplatte. Der memory manager verwaltet die übersetzungen von der Seite im virtuellen Speicher auf der physischen Seite. Eine virtuelle Seite könnte sein sich im physischen RAM, während die Seite weiter zu, könnte es sein, auf der Festplatte in der Auslagerungsdatei.
ABER: PF (Seite-Datei) Verwendung - Dies ist die Gesamtzahl der übermittelten Seiten auf das system. Es tut dir nicht sagen, wie viele tatsächlich in die Auslagerungsdatei geschrieben. Es nur sagt Ihnen, wie viel von der Seite die Datei würde verwendet werden, wenn alle Seiten begangen hatte, für die geschrieben werden, um die Seite Datei zur gleichen Zeit.
Damit B >...
Wenn wir uns einig sind, dass B steht für "mem usage" oder auch PF-Nutzung, das problem kommt von der Tatsache, dass es tatsächlich darstelltpotential Seite Verwendungen : bei Xp, dieses Potenzial Speicherplatz kann verwendet werden, als einen Ort zu zuweisen, diese virtuellen Speicher-Seiten, die Programme, die danach gefragt haben, aber nie zum Einsatz gebracht...
Aber der Weg "Xp-Task-Manager" berichten Sie, B "memory usage", nicht nur den physischen Speicher, sondern auch die Auslagerungsdatei auf der Festplatte.
Oh. Aber der Task-Manager-Hilfe-Datei sagt "Mem Usage" ist die Arbeit eingestellt, und wenn ich mich nicht falsch, working-set, beschränkt sich auf die Seiten im physikalischen Speicher nur. Aber selbst wenn, was Sie sagen, richtig ist, dann ist B = A und nicht B > A, da A die insgesamt zugesichertem virtuellen Speicher: Seiten im RAM + Seiten in der Scheibe.
InformationsquelleAutor VonC
Fragmentierung des Speichers ist wahrscheinlich nicht der Grund:
Wenn der Prozess zuweist, 1 Oktett, es zählt für 1 octet in der VMSize, aber diese 1-Oktett-erfordert eine physische Seite (4K unter windows-Betriebssystem).
Wenn nach Zuweisung/Freigabe von Speicher, der Prozess hat ein zweites Byte, getrennt durch mehr als 4K von der ersten, diesem zweiten Oktett wird immer gespeichert auf einem separaten physischen Seite, als der 1.
Also, der VM-Größe-Anzahl ist 2 Oktetts aber die Speicherauslastung ist 2 Seiten== 8K
Also die Tatsache, dass MemUsage größer ist als VMSize zeigt, dass der Prozess nicht viel allocation und deallocation und Fragmente der Erinnerung.
Dies könnte sein, weil der Prozess begann vor langer Zeit.
Oder es ist Platz für Optimierung 😉
InformationsquelleAutor