Страницы

Поиск по вопросам

пятница, 14 декабря 2018 г.

Как программно определить количество ядер в процессоре?

Всем доброго времени суток, подскажите, как в 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;

Комментариев нет:

Отправить комментарий