6 Stimmen

Speicherabbildende Dateien: Überwachung der Speichernutzung

Ich arbeite an einer 32-Bit-Endbenutzeranwendung, die viel Speicherplatz benötigt. Bis zu mehreren Gigabyte. Vor kurzem habe ich unsere interne Speicherzuweisungsstrategie geändert und verwende nun memory-mapped-files-without-files, inspiriert von diesen Artikel von Raymond Chen. Es funktioniert großartig.

Der einzige Nachteil ist dieser: Wenn ich auf diese Weise ein Gigabyte Speicher zuweise, taucht es in den Leistungszählern nicht auf. Natürlich weiß ich, wie viel zugewiesen wird und wie viel davon in meinen Adressraum eingeblendet wird, aber ich weiß nicht, wie es auf den physischen Speicher und die Auslagerungsdatei aufgeteilt ist. Ich würde es gerne wissen, und sei es nur, um es für die Fehlersuche zu protokollieren.

1voto

Die Lösung war die Überwachung meiner Anwendung mit sysinternals' VMMap . Damit wird die Speichernutzung einer Anwendung nach Zuweisungstyp (meine Memory-Mapped-Dateien werden als "Shared" bezeichnet) sowie nach Status (im Speicher oder ausgelagert) aufgeschlüsselt.

Es gibt sogar eine grafische Karte der Speicherfragmentierung!

0voto

wj32 Punkte 7677

Aufrufen. QueryWorkingSet und zählen Sie die Anzahl der Seiten, die in Ihrem zugeordneten Bereich liegen, um festzustellen, wie viel Ihres Speichers Teil des Arbeitsspeichers ist. Denken Sie aber daran, dass Seiten aus dem Working Set ausgeschlossen werden können, sich aber trotzdem irgendwo im physischen Speicher befinden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X