我遇到了一个问题,我的 32 位命令行应用程序在从 Windows 命令提示符或其他方式启动时被设置为仅使用 64 核系统上的前 32 个 CPU 内核。在任务管理器中查看该进程的 CPU 亲和性掩码,我可以看到只有前 32 个 CPU 被选中,而后 32 个 CPU 未被选中。
我确定我的代码没有调用 SetProcessAffinityMask,但是我如何才能知道是否有任何第三方模块调用了这个函数?调用 SetThreadPriority 之类的操作会改变 CPU 关联掩码吗?
最佳答案
根据 MSDN , 32 位应用程序只能访问 32 个处理器。即使您没有自己调用亲缘关系 API,它们也可能在初始化时在幕后使用。
关于c++ - 找出哪个模块设置了处理器关联掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30195819/