Wie berechnet man, wie viel Speicher ein Prozess benötigt?

381
Mr_Aj

Ich würde gerne wissen, wie viel kumulativer Speicher ein Prozess verwendet.

Ich analysiere die Leistung meines Systems während eines umfangreichen Kopiervorgangs. Dabei ziele ich auf wenige Prozesse.

Ich möchte berechnen, wie viel Speicher sie während dieser Zeit beanspruchen, und wenn ein Prozess erheblichen Speicherplatz benötigt, wollte ich hineingreifen (Speicherleck oder Code, der zu einem Speicher-Overhead führt).

Ich habe es mit xperf-Befehlen versucht.

Im xperf-Befehl habe ich folgende Kernel-Flags verwendet

->MEMORY+MEMINFO+MEMINFO_WS+HARD_FAULTS+VIRT_ALLOC+VAMAP+FOOTPRINT+REFSET 

& stackwalk-Flags

->PageAccess+PageAccessEx+PageRelease+PageRangeAccess+PageRangeRelease+VirtualAlloc+VirtualFree+HardFault+HeapCreate+HeapFree+HeapAlloc+HeapDestroy+HeapRealloc+PagefileMappedSectionCreate+PagefileMappedSectionDelete 

Im result-etl sehe ich folgende Registerkarten im linken Bereich unter dem Arbeitsspeicher. Speicherauslastung: Dies ist nicht sinnvoll, da es keine verfahrensbezogenen Daten enthält.

Harte Fehler: Seitenfehler nach Prozess Virtuelle Zuweisung Commit-Lebenszeiten: Hervorragende Commit-Funktion nach Prozess Pool Graphen: Paged-Daten und Non-Paged-Daten Resident-Set:

  1. Standard
  2. Speicherdruck
  3. Physischer Speicherdruck
  4. Privates Arbeitsset verarbeiten

Bitte informieren Sie mich darüber, welche Registerkarten / Parameter für die Speichernutzung zu berücksichtigen sind. Wie verwende ich diese Daten, um über die Speicherverwendung \ Speicherverluste \ API-Name zu schließen, die durch das Laden von Symbolen eine höhere Speicherauslastung verursacht?

1
@ magicandre1981 Mr_Aj vor 5 Jahren 0
Verwenden Sie ** wpr.exe -start ReferenceSet -filemode && timeout 3 && wpr.exe -stop C: \ HighMemoryUsage.etl **. Ziehen Sie [residentes Diagramm] (https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-154-Memory-Footprint-and-Leaks#time=10m37s) in den Analysebereich, um die Verwendung anzuzeigen magicandre1981 vor 5 Jahren 0
@ magicandre1981 Sorry Aber dieser Befehl gibt mir einen Fehler. "Das System kann die angegebene Datei nicht finden. Fehlercode: 0x80070002". PS. Ich benutze Windows 7. Mr_Aj vor 5 Jahren 0
@ magicandre1981 Kannst du den obigen Befehl noch einmal überprüfen? Weil Sie "Reference Set" in den Befehl geschrieben haben und der Link für die Analyse residenter Sets ist. Und ich denke, dass diese beiden sehr unterschiedlich sind. Mr_Aj vor 5 Jahren 0
ReferenceSet funktioniert seit Windows 8. Ändern Sie den Befehl in ResidentSet. magicandre1981 vor 5 Jahren 0
@ magicandre1981 Resident funktioniert unter Windows 7. Jetzt kann ich die Registerkarte Resident Set im linken Bereich unter Memory sehen. Mr_Aj vor 5 Jahren 0
@ magicandre1981 Es gibt 4 Einsätze dafür. 1. Standard 2. Speicherdruck 3. Druck auf den physischen Speicher 4. Privates Arbeitsset bearbeiten Bitte geben Sie an, welche Registerkarten / Parameter für die Speichernutzung zu berücksichtigen sind. Wie verwende ich diese Daten, um über die Speicherverwendung \ Speicherverluste \ API-Name zu schließen, die durch das Laden von Symbolen eine höhere Speicherauslastung verursacht? Mr_Aj vor 5 Jahren 0

0 Antworten auf die Frage