2016-06-24 28 views
0

Ich schrieb App, die derzeit laufende Prozesse überwacht.Welcher PerformanceCounter in der Kategorie "Process" gibt die Speichergröße für den Prozess zurück?

Im folgenden Ausschnitt bekomme ich alle Instanzen in der Kategorie "Prozess".

var category = new PerformanceCounterCategory("Process"); 
    var instanceNames = category.GetInstanceNames(); 

Etwas später bekomme ich alle Kategorien für einzelne Instanz. Es sieht so aus.

var counters = category.GetCounters(instanse); 

Ich sehe, dass Evry-Instanz in dieser Kategorie 28 Zähler enthält. Unterhalb der Zählerliste.

% Prozessorzeit
% User Time
% Privilegierte Zeit
Virtuelle Bytes Peak-
Virtuelle Bytes
Seitenfehler/s
Working Set Spitzen
Working Set
Page File Bytes Peak-
Seite Dateibytes
Private Bytes
Thread Count
Priorität Basis
Abgelaufene Zeit
ID Prozess
Erstellen von Prozess ID
Pool Paged Bytes
Pool Nonpaged Bytes
Handle Count
IO Read-Operationen/s
IO schreiben Operationen/s
IO Datenoperationen/Sek.
IO Andere Operationen/Sek.
IO Lesen Byte/Sek.
IO Wr ite Bytes/sec
IO Data Bytes/sec
IO Andere Bytes/sec
Working Set - Privat

So Frage. Welcher Zähler gibt Auskunft über den Speicher der aktuellen Instanz?
Ich denke, es ist eine einfache Frage, aber ich kann keine Antwort finden. Ich wäre dankbar, wenn jemand es erzählen würde.

Wenn wir davon ausgehen, dass dieses "Working Set":

Process: SkypeC2CPNRSvc | Prozess-ID: 2500 Prozess:
Gruppe: Prozess | Prozess: SkypeC2CPNRSvc | Name: Arbeitssatz | Wert: 311296

Dieser Wert wird in folgenden Weise berechnet: prfc.NextValue()/1024
In Aufgabe manaker für diesen Prozess siehe i 316K

+0

Möglicherweise "Arbeitssatz"? (Basierend auf https://en.wikipedia.org/wiki/Working_set) –

Antwort

1

"Working Set". "Working Set - Private" und "Private Bytes" sind alle Zähler, die den vom aktuellen Prozess verwendeten Speicher beschreiben.

Sie können diesen Link für eine gute Diskussion über die Unterschiede sehen:

What is private bytes, virtual bytes, working set?

0

ich TraceEvent verwenden würde ein Realtime Session und aktivieren Anbieter Microsoft-Windows-Kernel-Memory mit keywork 0x40 (KERNEL_MEM_KEYWORD_MEMINFO_EX) zu starten.

Jetzt Windows-wirft jede 0,5s und Ereignis mit diesen Daten:

Count, ProcessID, WorkingSetPageCount, CommitPageCount, VirtualSizeInPages, PrivateWorkingSetPageCount 

Parse sie in der Art und Weise Sie sie benötigen.