WIN32 C :获取过程CPU亲和力

Win32 c++: Get process CPU affinity?

本文关键字:CPU 亲和力 获取过程 WIN32      更新时间:2023-10-16

我需要查询我程序的CPU亲和力,并找到已分配给系统的CPU总数中有多少个CPU。

std::thread::hardware_concurrency()返回一个不反映亲和力的值。是否有(快速)查询过程亲和力的方法?

似乎这是在工作:

int getAffinityCount()
{
    DWORD64 dwProcessAffinity, dwSystemAffinity;
    GetProcessAffinityMask(GetCurrentProcess(), &dwProcessAffinity, &dwSystemAffinity);
    return __popcnt64(dwProcessAffinity);
}