>백엔드 개발 >C++ >다양한 시스템의 CPU 코어 수를 프로그래밍 방식으로 결정하는 방법은 무엇입니까?

다양한 시스템의 CPU 코어 수를 프로그래밍 방식으로 결정하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-14 18:10:11428검색

How to Programmatically Determine the Number of CPU Cores in Different Systems?

프로그래밍 방식으로 머신 코어 수 결정

다양한 시나리오에서는 머신이 보유한 코어 수를 확인하는 것이 필수적입니다. 이 정보는 리소스 할당을 최적화하고 시스템 기능을 이해하는 데 도움이 됩니다. 이 중요한 지표를 결정하는 데는 여러 가지 방법이 있습니다.

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

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