以程式方式決定機器核心的數量
在各種場景中,決定機器擁有的核心數量變得至關重要。此資訊有助於優化資源分配和了解系統功能。有多種方法可以確定這一關鍵指標。
C 11 及以後
C 11 引入了一個用於檢索核心計數的便攜式解決方案:
#include <thread> // May return 0 if unable to detect. const auto processor_count = std::thread::hardware_concurrency();
Pre-C 11 和特定於平台的方法
在C 11 之前,採用特定平台的方法:
Windows
SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); int numCPU = sysinfo.dwNumberOfProcessors;
Linux、Solaris 、AIX、Mac OS X(老虎開始)
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
FreeBSD、macOS、NetBSD、 OpenBSD
int mib[4]; int numCPU; std::size_t len = sizeof(numCPU); mib[0] = CTL_HW; mib[1] = HW_AVAILCPU; sysctl(mib, 2, &numCPU, &len, NULL, 0); if (numCPU < 1) { mib[1] = HW_NCPU; sysctl(mib, 2, &numCPU, &len, NULL, 0); if (numCPU < 1) numCPU = 1; }
HPUX
int numCPU = mpctl(MPC_GETNUMSPUS, NULL, NULL);
IRIX
int numCPU = sysconf(_SC_NPROC_ONLN);
目標- C(Mac OS X >= 10.5或iOS)
NSUInteger a = [[NSProcessInfo processInfo] processorCount]; NSUInteger b = [[NSProcessInfo processInfo] activeProcessorCount];
透過利用這些技術,開發人員可以輕鬆確定其電腦上可用的核心數量,從而實現高效的資源利用和效能最佳化。
以上是如何以程式方式確定不同系統中 CPU 核心的數量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!