C++11
http://en.cppreference.com/w/cpp/thread/thread/hardware_concurrency
//may return 0 when not able to detect
unsigned concurentThreadsSupported = std::thread::hardware_concurrency();
Win32:
SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
numCPU = sysinfo.dwNumberOfProcessors;
Linux, Solaris, & AIX and Mac OS X (for all OS releases >= 10.4, i.e., Tiger onwards) - per comments:
numCPU = sysconf( _SC_NPROCESSORS_ONLN );
FreeBSD, MacOS X, NetBSD, OpenBSD, etc.:
int mib[4];
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);
if( numCPU < 1 )
{
mib[1] = HW_NCPU;
sysctl( mib, 2, &numCPU, &len, NULL, 0 );
if( numCPU < 1 )
{
numCPU = 1;
}
}
HPUX:
numCPU = mpctl(MPC_GETNUMSPUS, NULL, NULL);
IRIX:
numCPU = sysconf( _SC_NPROC_ONLN );
Mac OS X (10.5 and newer) or iOS (any version) using Objective-C:
NSUInteger a = [[NSProcessInfo processInfo] processorCount];
NSUInteger b = [[NSProcessInfo processInfo] activeProcessorCount];
반응형
'팁' 카테고리의 다른 글
[팁][Visual Studio] 코드 작성 시 지워도 되는 파일들 (0) | 2014.02.08 |
---|---|
[팁] 정밀한 타이머 - QueryPerformanceFrequency (0) | 2014.02.03 |
어셈블라 https://www.assembla.com/ (0) | 2014.02.01 |
[Memory] 클래스 상속 기반의 메모리 풀을 이용한 프로파일링 (0) | 2014.02.01 |
[팁][GPG2 - 1.7][GameObject 속성 관리 팁] 범용 C++ 멤버 접근을 위한 속성 클래스 (0) | 2014.01.10 |
[팁][OpenGL] 환경 설정 lib 관련 (0) | 2013.07.02 |
[팁][SDL] 개발환경 세팅 시 에러 (0) | 2013.07.02 |
비주얼 스튜디오 주석 단축키 (0) | 2013.05.09 |
[팁] 맥에서 윈도우 PC에 원격접속하기 (0) | 2013.04.01 |
인공지능 관련해서 좋은 사이트 발견 (0) | 2013.03.07 |