【问题标题】:Finding out which module set processor affinity mask找出哪个模块设置了处理器关联掩码
【发布时间】:2015-07-23 14:51:25
【问题描述】:

我遇到了一个问题,我的 32 位命令行应用程序在从 Windows 命令提示符或其他方式启动时,被设置为仅使用 64 核系统上的前 32 个 CPU 内核。在任务管理器中查看该进程的 CPU 关联掩码,我可以看到只有前 32 个 CPU 被选中,最后 32 个 CPU 未被选中。

我确保我的代码没有调用 SetProcessAffinityMask,但我如何查看是否有任何第三方模块调用了此函数?并且调用 SetThreadPriority 之类的操作会更改 CPU 关联掩码吗?

【问题讨论】:

    标签: c++ windows affinity


    【解决方案1】:

    根据MSDN,32 位应用程序只能访问 32 个处理器。即使您自己没有调用关联 API,也可能在初始化时在幕后使用这些 API。

    【讨论】:

    • 我能够使用任务管理器更改 CPU 关联性并在我的应用程序上使用所有 64 个内核。此外,默认情况下,该机器上的其他 32 位应用程序对每个检查的 CPU 具有亲和力。
    猜你喜欢
    • 2011-03-03
    • 2014-03-19
    • 2012-03-09
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多