獨立於平台確定機器核心數量
確定機器上的核心數量對於優化軟體效能至關重要。然而,為這項任務找到一個獨立於平台的解決方案可能具有挑戰性。
C 11 解
幸運的是,C 11引入了一種與平台無關的方法來識別核心count:
#include <thread> const auto processor_count = std::thread::hardware_concurrency();
此方法返回內核的邏輯數量,由底層硬體和操作報告system.
C 11先前的解決方案
對於C 11 之前的C 版本,沒有可移植的方法來確定核心數量。相反,必須使用特定平台的方法:
Windows
SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); int numCPU = sysinfo.dwNumberOfProcessors;
類 Unix 系統
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
macOS(之前10.5)
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; /* get the number of CPUs from the system */ sysctl(mib, 2, &numCPU, &len, NULL, 0);
Objective-C(macOS 10.5 或更高版本)
NSUInteger a = [[NSProcessInfo processInfo] processorCount];
以上是如何用 C 語言輕鬆確定機器的核心數量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!