Câu trả lời:
Sau khi đào qua tài liệu (dựa trên các câu trả lời khác ở đây), đây là quá trình tôi đã kết thúc bằng cách sử dụng:
Nắm bắt nhật ký ETW của vấn đề
Cách dễ nhất để làm điều này là sử dụng Trình ghi hiệu suất Windows . Tôi không chắc chắn khi nó xuất hiện lần đầu tiên, nhưng dường như được tích hợp trên các phiên bản Windows gần đây. Đặt hồ sơ thành CPU usage
.
hoặc, bằng cách sử dụng dấu nhắc lệnh nâng cao, điều hướng đến thư mục chứa nó và sử dụng công cụ dòng lệnh xperf:
xperf -on base+interrupt+dpc
Lưu ý, bạn sẽ cần phải đóng Trình theo dõi tiến trình hoặc bất kỳ ứng dụng nào sử dụng ETW hoặc bạn sẽ gặp phải lỗi sau: xperf: error: NT Kernel Logger: Cannot create a file when that file already exists. (0xb7).
Dừng theo dõi / lưu nhật ký
xperf -d interrupt_trace.etl
Mở theo dõi trong Windows Performance Analyzer
(một phần của Bộ công cụ hiệu suất Windows); một số nơi đề cập đến việc sử dụng xperfview
thay thế.
Mở rộng Computation
-> CPU Usage (Sampled)
-> DPC and ISR Usage by Module, Stack
, nhấp chuột phải vàadd graph to analysis view
Điều này chỉ đúng cho người lái xe trong câu hỏi. Trong trường hợp này, HDAudBus.sys đang sử dụng 10,82% hằng số cpu của tôi thông qua các ngắt, đó chính xác là những gì Process Explorer đã cho tôi thấy.
Nếu bạn có thể xử lý các công cụ hệ thống cấp thấp;
Phân tích hiệu suất Windows (WPA)
Windows Performance Analyzer (WPA) là một bộ công cụ giám sát hiệu suất được sử dụng để tạo hồ sơ hiệu năng chuyên sâu của các ứng dụng và hệ điều hành Microsoft Windows.
Sau khi bạn học cách sử dụng xperf; kiểm tra;
Hành động DPC / ISR tạo ra một báo cáo văn bản tóm tắt các số liệu khác nhau liên quan đến các DPC và ISR. Cách sử dụng cho hành động này là:
Sao chép mã -a dpcisr [-dpc -isr -summary -interval [n] -bucket [n] -range T1 T2]
Tùy chọn
Sự miêu tả
dpc
Chỉ hiển thị số liệu thống kê cho DPC
isr
Chỉ hiển thị số liệu thống kê cho ISR
tóm lược
Hiển thị báo cáo tóm tắt
khoảng [dt]
Hiển thị báo cáo sử dụng cho các khoảng thời gian của dt, mặc định là 1 giây
xô [dt]
Hiển thị biểu đồ cho các khoảng thời gian của dt, mặc định là 2 giây
phạm vi T1 T2
Hiển thị độ trễ giữa T1 và T2
If no data type is specified, default is to show report for both DPC
và ISR. Nếu không có loại báo cáo nào được chỉ định, mặc định là in cả ba loại báo cáo.
Đây là bài viết tốt nhất tôi đã tìm thấy về cách thực hiện việc này, với các hướng dẫn, ảnh chụp màn hình và liên kết tải xuống các công cụ có liên quan:
http://www.msfn.org/board/topic/140263-how-to-get-the-cause-of-high-cpu-usage-by-dpc-interrupt/
Hãy xem Windows Process Explorer:
http://technet.microsoft.com/en-us/sysiternals/bb896653.aspx
Điều đó sẽ giúp.
Hai công cụ tuyệt vời là Công cụ kiểm tra độ trễ LatencyMon và DPC .