>백엔드 개발 >C++ >C에서 머신의 코어 수를 이식 가능하게 결정하려면 어떻게 해야 합니까?

C에서 머신의 코어 수를 이식 가능하게 결정하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-29 02:55:10157검색

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();

이 메서드는 기본 하드웨어 및 운영 체제에서 보고한 논리적 코어 수를 반환합니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.