检测各种编程环境下的 CPU 核心数量
简介
确定数量机器上的核心数量是优化代码性能和资源分配的关键方面。虽然没有跨所有平台的通用解决方案,但有一些特定于平台的方法可用。
C 11 及更高版本
C 11 引入了 std::thread:: hardware_concurrency() 函数,提供了检索硬件线程数的标准化方法。建议使用此方法来实现跨平台兼容性。
#include <thread> const auto processor_count = std::thread::hardware_concurrency();
C 11 之前的替代方案
在 C 11 之前,特定于平台的方法是必需。
Win32:
SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); int numCPU = sysinfo.dwNumberOfProcessors;
Linux、Solaris、AIX、Mac OS X:
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
FreeBSD、MacOS X、NetBSD:
int numCPU; ... sysctl(mib, 2, &numCPU, &len, NULL, 0);
用于 Mac OS X 的 Objective-C 和iOS
Objective-C 提供了一种简单的方法:
NSUInteger processorCount = [[NSProcessInfo processInfo] processorCount];
以上是如何检测不同编程语言和环境下的CPU核数?的详细内容。更多信息请关注PHP中文网其他相关文章!