2010-08-05 14 views

Respuesta

40

Para los datos por proceso:

Process p = /*get the desired process here*/; 
PerformanceCounter ramCounter = new PerformanceCounter("Process", "Working Set", p.ProcessName); 
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", p.ProcessName); 
while (true) 
{ 
    Thread.Sleep(500); 
    double ram = ramCounter.NextValue(); 
    double cpu = cpuCounter.NextValue(); 
    Console.WriteLine("RAM: "+(ram/1024/1024)+" MB; CPU: "+(cpu)+" %"); 
} 

Contador de rendimiento también tiene otra c ounters que el conjunto de trabajo y el tiempo del procesador.

+3

Se debe tener en cuenta que se requiere Suspensión, llamar a SiguienteValor, luego Dormir por 500-100, y luego llamar a SiguienteValor para que el valor real funcione; si llama primero a SiguienteValor, luego use ese valor y continúe con el siguiente proceso, siempre será 0 valor para el procesador%, el valor de RAM funciona independientemente. – ScottN

+0

Los valores que las salidas de código son siempre iguales. Incluso sospecho la exactitud del código. Ver mi [publicación] (http://stackoverflow.com/questions/8972239/how-to-use-performance-counter-or-process-class-correctly-in-c-sharp-to-get-memo). – Gqqnbig

+0

@LoveRight ¿funciona ahora? –

Cuestiones relacionadas