c++ - IUpdateSearcher 性能问题

标签 c++ windows performance wuapi

我正在使用 IUpdateSessionIUpdateSearcher 来尝试获取 Windows 系统的可用更新列表。

hr = CoCreateInstance(CLSID_UpdateSession, NULL, CLSCTX_INPROC_SERVER,  IID_IUpdateSession, (void**)&pUpdateSession);
if (FAILED(hr) || pUpdateSession == NULL)
{
    return;
}

hr = pUpdateSession->CreateUpdateSearcher(&pUpdateSearcher);
if (FAILED(hr) || pUpdateSearcher == NULL)
{
    return;
}

pUpdateSearcher->put_Online(VARIANT_FALSE);
pUpdateSearcher->put_CanAutomaticallyUpgradeService(VARIANT_FALSE);
pUpdateSearcher->put_IncludePotentiallySupersededUpdates(VARIANT_FALSE);


hr = pUpdateSearcher->Search(BSTR(L"IsInstalled=0 AND IsHidden=0"), &type);
if (FAILED(hr) || type == NULL)
{
    return;
}
else
{
    ... Print results etc. etc.
}

当您有单个(或少量)更新时,这非常有用。在有 109 个可用更新的新机器上进行测试时,->Search() 调用需要超过 10 分钟 来处理。

这是正常行为,还是可以采取一些措施来提高性能?

在此先感谢您的帮助。 也欢迎其他实现可用更新列表的解决方案。

最佳答案

这是正常行为,我认为您可能正在新的 Windows 7 VM 上搜索更新。

关于c++ - IUpdateSearcher 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071904/

相关文章:

c++ - 找到不能表示为序列中 1,2 或其他数字之和的最小可能数字

c++ - 为什么这个程序显示 "unreachable code"警告?我该如何抑制它?

windows - Hadoop Wordcount示例由于AM容器而失败

windows - 如何确保 az kubectl 凭据不会过期并且 kubectl 可以通过生产中的脚本运行?

iOS 在哪里放置自定义单元格设计? awakeFromNib 或 cellForRowAtIndexPath?

python - numpy.sum 可能比 Python for 循环慢

c++ - 在 Matrix4::Perspective 中反转 Z 轴

c++ - 所有 k 个子序列的最小值中的最大值

windows - Subversion 部署到 Windows 环境

performance - 经典ASP-长时间运行的进程。为什么这样不好呢?