Respuestas:
Después de examinar la documentación (basada en las otras respuestas aquí), este es el proceso que terminé usando:
Capture el registro ETW del problema.
La forma más fácil de hacerlo es usar el Grabador de rendimiento de Windows . No estoy seguro de cuándo apareció por primera vez, pero parece estar integrado en versiones recientes de Windows. Establece el perfil en CPU usage
.
o, usando un símbolo del sistema elevado, navegue a la carpeta que lo contiene y use la herramienta de línea de comandos xperf:
xperf -on base+interrupt+dpc
Tenga en cuenta que deberá cerrar Process Monitor o cualquier otra aplicación que use ETW o recibirá el siguiente error: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Dejar de rastrear / guardar el registro
xperf -d interrupt_trace.etl
Abra el seguimiento en Windows Performance Analyzer
(parte de Windows Performance Toolkit); Algunos lugares mencionan usar en su xperfview
lugar.
Expanda Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, haga clic derecho yadd graph to analysis view
Esto apuntó directamente al conductor en cuestión. En este caso, HDAudBus.sys está utilizando un 10.82% constante de mi CPU a través de interrupciones, que es exactamente lo que Process Explorer me estaba mostrando.
Si puede manejar herramientas de sistema de bajo nivel;
Analizador de rendimiento de Windows (WPA)
Windows Performance Analyzer (WPA) es un conjunto de herramientas de monitoreo de rendimiento que se utilizan para producir perfiles de rendimiento detallados de los sistemas operativos y aplicaciones de Microsoft Windows.
Después de aprender a usar xperf; revisa;
La acción DPC / ISR produce un informe de texto que resume las diversas métricas con respecto a los DPC e ISR. El uso para esta acción es:
Copiar código -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]
Opción
Descripción
dpc
Mostrar estadísticas solo para DPC
isr
Mostrar estadísticas solo para ISR
resumen
Mostrar informe resumido
intervalo [dt]
Mostrar informe de uso para intervalos de dt, el valor predeterminado es 1 segundo
cubo [dt]
Mostrar histograma para intervalos de dt, el valor predeterminado es 2 segundos
rango T1 T2
Mostrar retrasos entre T1 y T2
If no data type is specified, default is to show report for both DPC
e ISR. Si no se especifica ningún tipo de informe, el valor predeterminado es imprimir los tres tipos de informe.
Aquí está el mejor artículo que he encontrado sobre cómo hacer esto, con tutoriales, capturas de pantalla y enlaces de descarga a las herramientas relevantes:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Echa un vistazo al Explorador de procesos de Windows:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Eso debería ayudar.
Dos excelentes herramientas son LatencyMon y DPC Latency Checker .