c++ - 找出哪个模块设置了处理器关联掩码

标签 c++ windows affinity

我遇到了一个问题,我的 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/

相关文章:

C++ 获取运行时间和内存使用情况

c++ - 编译文件过大【202493852字节】在线提交报错

c++ - 是否可以在运行时确定指针指向 C++ 类还是指向 Objective-C 类?

windows - 批处理文件按修改日期移动文件

windows - 批处理文件循环遍历文本文件的内容,创建变量并移动具有部分名称的文件

command-line - 使用 cmd.exe 中的关联性启动可执行文件 (Windows XP)

windows - 为什么将多线程应用程序限制在一个核心使其运行得更快?

python - 如何反转 warpPerspective()

windows-xp - 如何从Windows XP的批处理文件设置处理器关联性?

java - Solr 设置 - 错误 : Could not find or load main class org. apache.solr.cloud.ZkCLI