Xperf (ETW) 如何测量驱动程序加载时间?

Posted

技术标签:

【中文标题】Xperf (ETW) 如何测量驱动程序加载时间?【英文标题】:How Xperf (ETW) measures driver load time? 【发布时间】:2011-07-18 22:59:22 【问题描述】:

我正在使用 Xperf 来测量我的 WDF 驱动程序的加载时间。由于某种原因,加载时间相当长 - 长达 1 秒。奇怪的是,即使我从驱动程序中删除所有代码,它仍然如此。

我的问题是 - XPerf(或更正确的 Windows 事件跟踪)如何测量驱动器加载时间?我可以看到这不是 DriveEntry 所花费的时间,而不是二进制加载所花费的时间。有什么提示吗?谢谢。

【问题讨论】:

【参考方案1】:

我会回答我自己的问题:

XPerf 仅测量 Windows 加载程序需要加载驱动程序二进制文件的时间。 IE。它没有考虑驱动程序内部例程执行所需的时间。

另外 - 由于某些奇怪的原因,如果驱动程序未签名,则 XPerf 输出不一致并且完全错误。即使在系统启动时禁用“驱动程序签名检查”,此行为仍然存在。一旦驱动程序被签署,加载时间数字就变得可行了。

【讨论】:

以上是关于Xperf (ETW) 如何测量驱动程序加载时间?的主要内容,如果未能解决你的问题,请参考以下文章

使用 xperf 获取符号

xperf 拒绝加载任何符号

如何在通用应用程序中禁用任务并行库的 ETW EventSource?

xperf 调用堆栈跟踪,特定于 dll

如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

窗口 - 基于清单的 ETW 提供程序问题