我正在使用 WMI 执行各种操作系统管理和查询任务,但第一次 WMI 调用总是需要很长时间(10 到 15 秒)。
当我尝试了 sysinternals 的一些工具时,我发现它们的速度要快得多,我想知道这怎么可能。
例如,PsList 工具如何在 2 秒内返回结果,而对于 wmi,它至少需要 15 秒。大部分时间用于身份验证而不是实际工作,同一台机器的下一次 wmi 查询要快得多。
是否可以查看 sysinternals 实用程序的源代码?他们使用 WMI 还是直接调用 win32 api?
最佳答案
WMI 有很多开销:身份验证/授权访问 WMI 命名空间/DCOM/RPC。它旨在实现简单和安全的管理,而不是为了性能。
推荐阅读:
WMI: Improving your WMI application performance in fan-out scenario
关于winapi - 为什么 WMI 比使用 PsExec 或 PsList 等实用程序慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234889/