我开发了一个使用多个内核(可配置)的 Windows C++ 控制台应用程序。几年前,我添加了处理器组,以便利用超过 64 个 CPU 等,一切正常。
有一段时间我们使用i7-12700K,它具有一些性能和一些高效核心。现在,从 Windows 10 更新到 Windows 11 后,我们发现我们的应用程序仅使用 4 个高效核心,而性能核心则闲置。
如何解决这个问题? 是否有相关的 API 或者管理员设置?
我非常确定您不能强制使用 P 核心,因为 Windows 正在管理这些核心。 Windows 仅在任务密集时才会使用 P 核,如果 E 核足够,则会使用 E 核。
从 Windows 11 和 Windows Server 2022 开始,它不再是 应用程序默认限制为单个的情况 处理器组。相反,进程及其线程拥有处理器 默认情况下,关联性跨越系统中的所有处理器, 具有超过 64 个处理器的计算机上的多个组。
因此,您可能不再有效地从应用程序可以访问所有 CPU 的组中消除 E 核心,并且调度程序会优先考虑节能的 E 核心,因为它认为您不需要 P 核心电源。然而,鉴于您问题中的细节,这是我的假设。