Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Bilangan Teras pada Mesin Secara Pengaturcaraan?
Menentukan Bilangan Teras pada Mesin Secara Pengaturcaraan
Dalam pelbagai senario pengkomputeran, memahami bilangan teras yang tersedia pada mesin adalah penting. C/C tidak menawarkan penyelesaian bebas platform untuk tugas ini. Walau bagaimanapun, terdapat pendekatan khusus platform yang boleh memberikan maklumat ini.
C 11 (Bebas Platform)
C 11 memperkenalkan std::thread::hardware_concurrency () fungsi, yang menyediakan kaedah mudah alih untuk mendapatkan bilangan teras.
#include <thread> const auto processor_count = std::thread::hardware_concurrency();
Pra-C 11 (Platform-Specific)
Dalam C sebelum C 11, kaedah khusus mesti digunakan bergantung pada platform:
Win32
SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); int numCPU = sysinfo.dwNumberOfProcessors;
Linux, Solaris, AIX, Mac OS X >=10.4
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
FreeBSD, MacOS X, NetBSD, OpenBSD
int mib[4]; int numCPU; std::size_t len = sizeof(numCPU); /* set the mib for hw.ncpu */ mib[0] = CTL_HW; mib[1] = HW_AVAILCPU; // alternatively, try HW_NCPU; /* get the number of CPUs from the system */ sysctl(mib, 2, &numCPU, &len, NULL, 0);
HPUX
int numCPU = mpctl(MPC_GETNUMSPUS, NULL, NULL);
IRIX
int numCPU = sysconf(_SC_NPROC_ONLN);
Objektif- C (Mac OS X >=10.5 atau iOS)
NSUInteger a = [[NSProcessInfo processInfo] processorCount]; NSUInteger b = [[NSProcessInfo processInfo] activeProcessorCount];
Dengan menggunakan kaedah khusus platform ini atau pendekatan bebas platform C 11, anda boleh menentukan secara pemprograman bilangan teras yang tersedia pada mesin, membolehkan anda mengoptimumkan penggunaan sumber dan mencapai prestasi yang lebih baik dalam aplikasi anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Bilangan Teras pada Mesin Secara Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!