我的 rMBP 15 英寸电脑上装有 Boot Camp,运行 Windows 8.1。工作时,我通常会在后台运行 Spotify。最近,我注意到每当我的 CPU 使用率很高(>80%)时,音乐就会断断续续、失真。不仅仅是 Spotify,任何声音或音乐播放器都会受到影响。
我安装 Boot Camp 5.1 已经快一年了,以前从未遇到过这个问题。最近我升级到了 Boot Camp 6(Windows 8.1)。我怀疑一定是声卡驱动程序的问题,但即使重新安装了 Boot Camp 驱动程序,问题仍然存在。
我能做些什么来诊断这种行为的根本原因?
答案1
我使用以下 xperf 命令来获取系统上 DPC 活动的概览:
“C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\xperf.exe”-I DIOMBPWS03-07-2016.23-45-01.etl -a dpcisr > dpc.txt
在 DPC.txt 中,我看到有一些较大的峰值(超过 1024µs 的执行时间),导致这样的音频故障:
Total = 7394 for module USBXHCI.SYS
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.01%
Elapsed Time, > 8192 usecs AND <= 16384 usecs, 2, or 0.03%
Elapsed Time, > 16384 usecs AND <= 32768 usecs, 0, or 0.00%
Elapsed Time, > 32768 usecs AND <= 65536 usecs, 1, or 0.01%
Total, 7394
Total = 10028 for module afd.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 4, or 0.04%
Total, 10028
Total = 7092 for module ndis.sys
Elapsed Time, > 512 usecs AND <= 1024 usecs, 1, or 0.01%
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 1, or 0.01%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.01%
Total, 7092
Total = 28123 for module ntoskrnl.exe
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 1, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 6, or 0.02%
Total, 28123
Total = 36449 for module storport.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 0, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 0, or 0.00%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 4, or 0.01%
Total, 36449
Total = 29689 for module nvlddmkm.sys
Elapsed Time, > 1024 usecs AND <= 2048 usecs, 1, or 0.00%
Elapsed Time, > 2048 usecs AND <= 4096 usecs, 3, or 0.01%
Elapsed Time, > 4096 usecs AND <= 8192 usecs, 1, or 0.00%
Total, 29689
最大的问题来自USBXHCI.SYS
Windows 8.1 的 USB 3.0 驱动程序(),其峰值达到 0.032768 秒,这非常糟糕。
我查看了调用堆栈,发现 USB 驱动程序执行了一些 IO 传输(USBXHCI.SYS!UsbDevice_TransferEventHandler
)。因此,请禁用您使用的某些 USB 设备,直到找到导致使用的设备。