Risposte:
Dopo aver esaminato la documentazione (in base alle altre risposte qui), questo è il processo che ho finito usando:
Cattura il registro ETW del problema
Il modo più semplice per farlo è utilizzare il Performance Recorder di Windows . Non sono sicuro quando è apparso per la prima volta, ma sembra essere integrato nelle ultime versioni di Windows. Imposta il profilo su CPU usage
.
oppure, utilizzando un prompt dei comandi con privilegi elevati, passare alla cartella che lo contiene e utilizzare lo strumento da riga di comando xperf:
xperf -on base+interrupt+dpc
Nota, dovrai chiudere Process Monitor o qualsiasi altra app che utilizza ETW o visualizzerai il seguente errore: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Interrompere la traccia / salvare il registro
xperf -d interrupt_trace.etl
Apri la traccia in Windows Performance Analyzer
(parte di Windows Performance Toolkit); alcuni luoghi menzionano xperfview
invece l' uso .
Espandere Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, fare clic con il tasto destro eadd graph to analysis view
Ciò indicava il conducente in questione. In questo caso, HDAudBus.sys utilizza un costante 10,82% della mia CPU tramite interrupt, che è esattamente ciò che Process Explorer mi stava mostrando.
Se riesci a gestire strumenti di sistema di basso livello;
Windows Performance Analyzer (WPA)
Windows Performance Analyzer (WPA) è un insieme di strumenti di monitoraggio delle prestazioni utilizzati per produrre profili di prestazioni approfonditi dei sistemi operativi e delle applicazioni Microsoft Windows.
Dopo aver imparato come usare xperf; check-out;
L'azione DPC / ISR produce un rapporto di testo che sintetizza le varie metriche relative a DPC e ISR. L'utilizzo per questa azione è:
Copia codice -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]
Opzione
Descrizione
DPC
Mostra statistiche solo per DPC
isr
Mostra statistiche solo per ISR
sommario
Mostra rapporto di riepilogo
intervallo [dt]
Mostra rapporto di utilizzo per intervalli di tempo, il valore predefinito è 1 secondo
secchio [dt]
Mostra istogramma per intervalli di dt, il valore predefinito è 2 secondi
intervallo T1 T2
Mostra i ritardi tra T1 e T2
If no data type is specified, default is to show report for both DPC
e ISR. Se non viene specificato alcun tipo di rapporto, per impostazione predefinita è stampare tutti e tre i tipi di rapporto.
Ecco l'articolo migliore che ho trovato su come farlo, con tutorial, schermate e collegamenti per il download degli strumenti pertinenti:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Dai un'occhiata a Esplora processi di Windows:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Questo dovrebbe aiutare.
Due grandi strumenti sono LatencyMon e DPC Latency Checker .