プログラムによるマシン コアの数の決定
さまざまなシナリオにおいて、マシンが所有するコアの数を確認することが不可欠になります。この情報は、リソース割り当ての最適化とシステム機能の理解に役立ちます。この重要なメトリクスを決定するには、いくつかの方法が存在します。
C 11 以降
C 11 では、コア数を取得するための移植可能なソリューションが導入されました。
#include <thread> // May return 0 if unable to detect. const auto processor_count = std::thread::hardware_concurrency();
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 中国語 Web サイトの他の関連記事を参照してください。