> 백엔드 개발 > C++ > 머신의 코어 수를 프로그래밍 방식으로 어떻게 확인할 수 있습니까?

머신의 코어 수를 프로그래밍 방식으로 어떻게 확인할 수 있습니까?

DDD
풀어 주다: 2024-12-13 09:23:11
원래의
174명이 탐색했습니다.

How Can I Programmatically Determine the Number of Cores on a Machine?

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

다양한 컴퓨팅 시나리오에서는 머신에서 사용 가능한 코어 수를 이해하는 것이 중요합니다. C/C는 이 작업에 대해 플랫폼 독립적인 솔루션을 제공하지 않습니다. 그러나 이 정보를 제공할 수 있는 플랫폼별 접근 방식이 있습니다.

C 11(플랫폼 독립적)

C 11에서는 std::thread::hardware_concurrency를 도입합니다. () 함수는 숫자를 얻는 이식 가능한 방법을 제공합니다.

#include <thread>

const auto processor_count = std::thread::hardware_concurrency();
로그인 후 복사

Pre-C 11(플랫폼별)

C 11 이전의 C에서는 특정 방법을 사용해야 합니다. 플랫폼:

Win32

SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
int numCPU = sysinfo.dwNumberOfProcessors;
로그인 후 복사

Linux, Solaris, AIX, Mac OS X >=10.4

int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
로그인 후 복사

FreeBSD, MacOS X, NetBSD, OpenBSD

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;  // alternatively, try HW_NCPU;

/* get the number of CPUs from the system */
sysctl(mib, 2, &numCPU, &len, NULL, 0);
로그인 후 복사

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];
로그인 후 복사

이러한 플랫폼별 방법이나 C 11 플랫폼 독립적인 접근 방식을 활용하면 시스템에서 사용 가능한 코어 수를 프로그래밍 방식으로 결정할 수 있으므로 리소스 활용도를 최적화하고 귀하의 애플리케이션에서 더 나은 성능을 얻으세요.

위 내용은 머신의 코어 수를 프로그래밍 방식으로 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿