ホームページ > バックエンド開発 > C++ > C でマシンのコア数をポータブルに判断するにはどうすればよいですか?

C でマシンのコア数をポータブルに判断するにはどうすればよいですか?

DDD
リリース: 2024-12-29 02:55:10
オリジナル
142 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート