1. 获取windows cpu 核个数
size_t getProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(system & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
return sysinfo.dwNumberOfProcessors;
}
size_t getAvailableProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(process & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
return sysinfo.dwNumberOfProcessors;
}