Всем доброго времени суток, подскажите, как в C/C++ программно определить количество ядер в процессоре? Может метод какой есть?
#include
using namespace std;
int main()
{
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
cout << numCPU << endl;
}
Ответ
Отредактировано: Раз нашел, то сделал перевод аналогичного вопроса на StackOverflow
Linux, Solaris, AIX, OS X >= 10.4:
sysconf(_SC_NPROCESSORS_ONLN);
Или прочитать в /proc/cpuinfo (для LSB-совместимых дистрибутивов).
FreeBSD, OS X/Darwin, NetBSD, OpenBSD и их *BSD-сородичи:
int mib[4] = {CTL_HW, HW_AVAILCPU, 0, 0};
size_t len = sizeof(numCPU);
sysctl(mib, 2, &numCPU, &len, NULL, 0);
if (numCPU < 0) {
mib[1] = HW_NCPU;
sysctl(mib, 2, &numCPU, &len, NULL, 0);
}
HPUX:
mpctl(MPC_GETNUMSPUS, NULL, NULL)
IRIX:
sysconf(_SC_NPROC_ONLN)
OS X >= 10.5 (на Objective-C):
NSUInteger a = [[NSProcessInfo processInfo] processorCount];
NSUInteger b = [[NSProcessInfo processInfo] activeProcessorCount];
Windows
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
numCPU = sysinfo.dwNumberOfProcessors;
Комментариев нет:
Отправить комментарий