Yanıtlar:
Belgeleri araştırdıktan sonra (buradaki diğer cevaplara göre), işte kullandığım işlem şöyle:
Sorunun ETW günlüğünü yakalayın
Bunu yapmanın en kolay yolu, Windows Performance Recorder'ı kullanmaktır . İlk ortaya çıktığında emin değilim, ancak Windows'un son sürümlerinde yerleşik olarak görünüyor. Profili olarak ayarlayın CPU usage
.
veya yükseltilmiş bir komut istemi kullanarak, onu içeren klasöre gidin ve xperf komut satırı aracını kullanın:
xperf -on base+interrupt+dpc
İşlem İzleyicisi'ni veya ETW kullanan diğer uygulamaları kapatmanız gerekeceğini veya aşağıdaki hatayı alacağınızı unutmayın: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
İzlemeyi durdur / günlüğü kaydet
xperf -d interrupt_trace.etl
İzlemeyi açın Windows Performance Analyzer
(Windows Performans Araç Seti'nin bir parçası); bazı yerler xperfview
bunun yerine kullanmaktan bahseder .
Genişlet Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, sağ tıklayın veadd graph to analysis view
Bu, söz konusu sürücünün hakkını gösterdi. Bu durumda, HDAudBus.sys CPU'mun% 10.82'sini kesinti nedeniyle kullanıyor, bu tam olarak Process Explorer'ın bana gösterdiği şeydi.
Düşük seviyeli sistem araçlarını kullanabiliyorsanız;
Windows Performans Analizörü (WPA)
Windows Performans Çözümleyicisi (WPA), Microsoft Windows işletim sistemlerinin ve uygulamalarının derinlemesine performans profillerini üretmek için kullanılan bir dizi performans izleme aracıdır.
Xperf kullanmayı öğrendikten sonra; Çıkış yapmak;
DPC / ISR eylemi, DPC'ler ve ISR'lerle ilgili çeşitli ölçümleri özetleyen bir metin raporu oluşturur. Bu eylemin kullanımı:
Kopyalama Kodu -a dpcisr [-dpc -isr - özeti -interval [n] -bucket [n] -range T1 T2]
seçenek
Açıklama
dPC
Yalnızca DPC için istatistikleri göster
isr
Yalnızca ISR için istatistikleri göster
özet
Özet raporu göster
aralık [dt]
Dt aralıkları için kullanım raporunu göster, varsayılan 1 saniyedir
kova [dt]
Histogramını dt aralıkları için göster, varsayılan 2 saniyedir
aralık T1 T2
T1 ve T2 arasındaki gecikmeleri göster
If no data type is specified, default is to show report for both DPC
ve ISR. Rapor türü belirtilmezse, varsayılan olarak üç rapor türünün de yazdırılması gerekir.
İşte bunun nasıl yapılacağı, öğreticiler, ekran görüntüleri ve ilgili araçlara indirme bağlantılarıyla ilgili bulduğum en iyi makale:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Windows İşlem Gezgini'ne bir göz atın:
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Bu yardımcı olmalı.
İki büyük araç LatencyMon ve DPC Latency Checker .