首页 > 后端开发 > C++ > 如何用 C 语言轻松确定机器的核心数量?

如何用 C 语言轻松确定机器的核心数量?

DDD
发布: 2024-12-29 02:55:10
原创
140 人浏览过

How Can I Portably Determine a Machine's Core Count in C  ?

独立于平台确定机器核心数量

确定机器上的核心数量对于优化软件性能至关重要。然而,为这项任务找到一个独立于平台的解决方案可能具有挑战性。

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板