Antworten:
Nach dem Durchstöbern der Dokumentation (basierend auf den anderen Antworten hier) habe ich Folgendes ausgeführt:
Erfassen Sie das ETW-Protokoll des Problems
Am einfachsten geht das mit dem Windows Performance Recorder . Ich bin mir nicht sicher, wann es zum ersten Mal aufgetaucht ist, aber es scheint in neueren Windows-Versionen eingebaut zu sein. Stellen Sie das Profil auf CPU usage
.
Oder navigieren Sie über eine Eingabeaufforderung mit erhöhten Rechten zu dem Ordner, in dem sich der Befehl befindet, und verwenden Sie das Befehlszeilentool xperf:
xperf -on base+interrupt+dpc
Beachten Sie, dass Sie Process Monitor oder eine andere App, die ETW verwendet, schließen müssen, da andernfalls die folgende Fehlermeldung angezeigt wird: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Beenden Sie die Verfolgung / speichern Sie das Protokoll
xperf -d interrupt_trace.etl
Öffnen Sie den Trace in Windows Performance Analyzer
(Teil von Windows Performance Toolkit). Einige Orte erwähnen xperfview
stattdessen die Verwendung von .
Erweitern Sie Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, klicken Sie mit der rechten Maustaste undadd graph to analysis view
Dies wies direkt auf den fraglichen Fahrer hin. In diesem Fall verwendet HDAudBus.sys über Interrupts konstant 10,82% meiner CPU. Genau das hat mir Process Explorer gezeigt.
Wenn Sie mit einfachen Systemwerkzeugen umgehen können;
Windows Performance Analyzer (WPA)
Windows Performance Analyzer (WPA) ist eine Reihe von Tools zur Leistungsüberwachung, mit denen ausführliche Leistungsprofile von Microsoft Windows-Betriebssystemen und -Anwendungen erstellt werden.
Nachdem Sie erfahren haben, wie Sie xperf verwenden; Auschecken;
Die DPC / ISR-Aktion erstellt einen Textbericht, in dem die verschiedenen Metriken in Bezug auf DPCs und ISRs zusammengefasst sind. Die Verwendung für diese Aktion ist:
Code kopieren -a dpcisr [-dpc -isr -summary -interval [n] -Bucket [n] -Bereich T1 T2]
Möglichkeit
Beschreibung
dpc
Statistiken nur für DPC anzeigen
isr
Statistiken nur für ISR anzeigen
Zusammenfassung
Zusammenfassenden Bericht anzeigen
Intervall [dt]
Nutzungsbericht für Intervalle von dt anzeigen, Standard ist 1 Sekunde
Eimer [dt]
Histogramm für Intervalle von dt anzeigen, Standard ist 2 Sekunden
Bereich T1 T2
Verzögerungen zwischen T1 und T2 anzeigen
If no data type is specified, default is to show report for both DPC
und ISR. Wenn kein Berichtstyp angegeben ist, werden standardmäßig alle drei Arten von Berichten gedruckt.
Hier ist der beste Artikel, den ich dazu gefunden habe, mit Tutorials, Screenshots und Download-Links zu den relevanten Tools:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Schauen Sie sich den Windows Process Explorer an:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Das sollte helfen.
Zwei großartige Tools sind LatencyMon und DPC Latency Checker .