2009-03-12 12 views
5

Sé en perfmon que puede ver cuánto se utiliza cada núcleo y cuánto CPU total está usando un proceso en particular. Sin embargo, parece que no puedo encontrar la manera de ver cuánta CPU está usando un proceso desglosado por núcleos.¿Hay alguna manera de ver cuánto uso de CPU usa cada núcleo?

¿Hay una forma integrada de ver esta información? ¿Hay una forma programática de ver esto? (C# preferido) ¿Estoy demostrando una mala comprensión de cómo Windows (Vista) maneja el uso del núcleo y el cambio de contexto al hacer esta pregunta?

Editar: Más aclaración de lo que quiero averiguar. ¿Mi proceso solo utiliza un 30-40% de CPU total (en un núcleo cuádruple) porque no tiene suficientes subprocesos para utilizar más o porque está demasiado vinculado a E/S y el acceso al disco es el cuello de botella?

¿Entonces no hay forma de hacer esto? (aparte de asegurarse de que no haya otra actividad de CPU en funcionamiento en la computadora)

Respuesta

1

Process Explorer al menos puede mostrar los hilos de un proceso determinado y la cantidad de CPU que están usando. Tal vez puedas obtener el core/cpu en el que se ejecutan los hilos de alguna manera y luego simplemente sumar. Aunque no tengo mucha experiencia en WinAPI. Entonces, tal vez la afinidad del procesador solo se pueda consultar en los procesos.

2

No se puede obtener directamente los tiempos de ciclo por-Procesadora para un proceso dado, pero se puede estimar que en el tiempo con QueryIdleProcessorCycleTime (a medida que regresa tiempos de inactividad para todos los procesadores lógicos, es decir, núcleos) y QueryProcessCycleTime y suponiendo que es el único proceso que no está funcionando al ralentí.

+0

lol, es difícil conseguir que mi proceso sea el único proceso no inactivo cuando se ejecuta en Vista, tanto ruido de fondo – Davy8

Cuestiones relacionadas