LatencyTest¶
- 菜单路径:「选项 / 工具 / LatencyTest」
测试版
LatencyTest 目前位于 Process Lasso 测试版(18.5.0.13 及之后)中,将随下一个正式版发布。独立的 LatencyTest 同样是免费的测试版。
LatencyTest 用于找出导致音频爆音、噼啪声与游戏卡顿的驱动程序。它会测量每个驱动程序的中断例程运行了多久,以及实时线程在 Windows 唤醒它之后等待了多久才真正运行。然后用一句话告诉您这台电脑是否可能有问题,以及是哪个驱动程序造成的。
LatencyTest 包含在免费版中。它和 Process Lasso 其他部分一样需要管理员权限,且自身不安装任何驱动:它通过一个专用跟踪会话读取内核自身的跟踪事件。
LatencyTest 以独立程序(LatencyTest.exe)运行,沿用 Process Lasso 的语言与主题,并且在 Process Lasso 窗口关闭后继续运行。同一时间只能运行一个 LatencyTest。它也可以单独免费获取(安装程序或便携版 zip),供没有安装 Process Lasso 的电脑使用:请见 bitsum.com 上的 LatencyTest。
LatencyTest 只在其窗口可见时测量。最小化窗口会暂停测试,恢复窗口则继续测试,关闭窗口会结束跟踪会话,因此在您不看它时不会带来任何额外开销。

运行测试¶
- 打开「选项 / 工具 / LatencyTest」。窗口一旦打开,测试即开始。
- 以问题出现时的相同方式使用电脑:玩那个游戏、运行那段音频工作,或开始那个似乎会引发问题的下载或复制。让测试至少运行几分钟,因为许多问题是间歇性的。
- 阅读窗口顶部的结论,以及其下方指出原因的那句话。
- 查看 驱动程序 选项卡,看看哪些驱动程序运行得最久。
停止 会暂停测试并保留结果,开始 继续测试,重置 清除结果。
结论¶
结论是以下三句话之一:
- 良好:「这台电脑应当能够顺畅处理实时音频与游戏,不会出现爆音或卡顿。」
- 警告:「这台电脑在实时音频中可能偶尔出现爆音,或在游戏中偶尔卡顿。」
- 较差:「这台电脑很可能在实时音频中出现爆音,并在游戏中卡顿。」
其下方的那句话解释是哪项测量决定了结论:它会指出中断服务例程(ISR)或延迟过程调用(DPC)耗时最长的驱动程序,或者说明实时线程等待过久的频率。
| 测量项 | 警告 | 较差 |
|---|---|---|
| 单次最长的 ISR 或 DPC | 500 µs 及以上 | 2,000 µs(2 ms)及以上 |
| 1 ms 及以上的线程唤醒 | 每分钟超过 6 次 | |
| 3 ms 及以上的线程唤醒 | 任意一次 | 每分钟超过 6 次 |
ISR 与 DPC 以单次最长者判定,因为某个例程运行过久就说明该驱动程序有问题。线程唤醒则以「慢得有多频繁」判定:空闲的电脑偶尔会晚唤醒某个休眠核心,而孤立的一次慢唤醒很少会造成可听见的爆音。在第一分钟内,速率显示为计数。
LatencyTest 测量什么¶
- 中断服务例程(ISR): 设备发出中断时驱动程序立即运行的代码。在它结束之前,该 CPU 上不会运行其他任何东西,因此过长的 ISR 会拖慢一切,包括音频。
- 延迟过程调用(DPC): 驱动程序从其 ISR 中安排的后续工作,例如处理收到的网络数据包。DPC 同样先于该 CPU 上的任何线程运行,因此过长的 DPC 是音频爆音最常见的原因。
- 线程唤醒延迟: 高优先级线程像音频线程等待下一个缓冲区那样,等待一个 1 ms 定时器。LatencyTest 测量从 Windows 使该线程就绪到它真正运行之间的时间。
- 硬页面错误(可选): 勾选「包含硬页面错误」后,LatencyTest 还会按进程统计内存需要从磁盘读回的频率。持续发生页面错误的进程可能停滞,即便所有驱动程序都正常。勾选或取消勾选该框会重新启动跟踪会话。
ISR 与 DPC 的时间是排他的,与 Windows Performance Analyzer 相同:当某个 ISR 打断了同一 CPU 上的 DPC 时,其时间只计在 ISR 所属的驱动程序上。
选项卡¶
选项卡上方有三个图块显示决定结论的数字:最长的 DPC 与最长的 ISR(各带所属驱动程序),以及每分钟有多少次线程唤醒耗时 1 ms 或更久。每个图块的彩色边缘显示各自属于良好、警告还是较差。
- 概览: 最近五分钟内每秒的最高 ISR、DPC 与线程唤醒延迟图表,警告与较差区间以色块标示,并附有整个测试的摘要。图表刻度适配最近一分钟;把鼠标滚轮悬在图表上可放大或缩小刻度,双击图表(或单击 重置)可回到自动刻度。
- 驱动程序: 所有运行过 ISR 或 DPC 的驱动程序,含次数、单次最长例程、总时长,以及有多少次超过 500 µs。超过警告或较差阈值的时间会被着色,决定结论的驱动程序会高亮,框架驱动程序则会淡显。单击列标题可排序。
- CPU: 按逻辑处理器给出相同的统计,以及各自的最高线程唤醒。在混合架构 CPU 上,核心类型列显示性能核与能效核。
- 硬页面错误: 勾选该选项后,列出发生硬页面错误的进程。
修复有问题的驱动程序¶
当某个驱动程序在 驱动程序 选项卡中格外突出时:
- 更新该驱动程序,尽量从电脑或设备厂商网站获取,而不是通过 Windows 更新。网络、Wi-Fi、显卡、音频与存储驱动是常见的元凶。
- 右键单击该驱动程序并选择 中断设置...(或双击它)。这会打开「中断相关性策略」并选中该驱动程序的设备,您可以把它的中断移到游戏或音频软件不使用的 CPU 上。
- 如果该设备并非必需,可在设备管理器中禁用它,然后重新运行测试以确认差异。
右键单击驱动程序还可以使用 打开文件位置 与 属性。
框架驱动程序¶
有些 Windows 驱动程序会替其他驱动程序运行中断与 DPC 例程,因此它们的时间无法归到某个设备上:Wdf01000.sys、ndis.sys、storport.sys、dxgkrnl.sys、tcpip.sys、ntoskrnl.exe、hal.dll、ucx01000.sys、usbport.sys、hidclass.sys、ks.sys、portcls.sys、ataport.sys 与 scsiport.sys。当其中之一排在列表顶部时,原因通常是使用它的某个设备的驱动程序:
- ndis.sys 与 tcpip.sys: 某个网络或 Wi-Fi 适配器。试试适配器厂商的最新驱动,或禁用该适配器后测试。
- Wdf01000.sys: 许多现代驱动程序都建立在这个框架之上,包括某些网络适配器。查看测试期间哪些设备比较繁忙。
- storport.sys: 某个存储控制器或硬盘。
- dxgkrnl.sys: 某个显卡。
对框架驱动程序选择 中断设置... 时,会给出上述说明。
报告¶
复制报告 会把结论、摘要与所有表格的文本报告复制到剪贴板,可直接粘贴到论坛帖子或支持请求中。保存报告... 会把同一份报告保存为文本文件,或供脚本使用的 JSON 文件。
说明¶
- 在 Windows 8 及之后,LatencyTest 使用自己的专用跟踪会话,因此可以与 LatencyMon、Windows Performance Recorder 和 xperf 同时运行。Windows 7 只有一个内核跟踪会话:如果有其他工具正在使用它,LatencyTest 会给出提示,并且不去动那个工具的会话。
- 远程桌面会话在某些电脑上会抬高线程唤醒延迟。为获得最有代表性的结果,请在电脑本机上运行测试。
- 结果的好坏取决于负载:对空闲电脑的测试,说明不了游戏中出现的问题。