C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でCPUコアの数を取得する方法を徹底解説

C#でCPUに関する情報を取得する場合、実は複数の種類の情報が存在します。取得できる主な情報は以下の3つです。

  • 物理プロセッサ(CPUソケット)の数
  • コアの数
  • 論理プロセッサの数

これらは必ずしも同じ値になるとは限りません。例えば、ハイパースレッディング対応のデュアルコアCPUを2基搭載したマシンの場合、物理プロセッサは「2」、コア数は「4」、論理プロセッサ数は「8」となります。

論理プロセッサの数はEnvironmentクラスから簡単に取得できますが、物理プロセッサ数やコア数についてはWMI(Windows Management Instrumentation)を使う必要があります。なお、システムによっては必要な情報を取得するためにホットフィックスやサービスパックの適用が必要な場合もあります。

事前準備:System.Management.dllへの参照追加

WMIを利用するには、プロジェクトにSystem.Management.dllへの参照を追加してください。.NET Coreの場合、このライブラリはWindows専用ですが、NuGetパッケージとして提供されているため、そちらからインストールできます。

物理プロセッサ数を取得する方法

Win32_ComputerSystemクラスに対してWMIクエリを実行することで、物理プロセッサの数を取得できます。

class Program{
    public static void Main(){
        foreach (var item in new
        System.Management.ManagementObjectSearcher("Select * from
        Win32_ComputerSystem").Get()){
            Console.WriteLine("Number Of Physical Processors: {0} ",
            item["NumberOfProcessors"]);
        }
        Console.ReadLine();
    }
}

出力結果

Number Of Physical Processors: 1

コア数を取得する方法

Win32_ProcessorクラスからNumberOfCoresプロパティを取得し、各プロセッサのコア数を合計します。

class Program{
    public static void Main(){
        int coreCount = 0;
        foreach (var item in new
        System.Management.ManagementObjectSearcher("Select * from
        Win32_Processor").Get()){
            coreCount += int.Parse(item["NumberOfCores"].ToString());
        }
        Console.WriteLine("Number Of Cores: {0}", coreCount);
        Console.ReadLine();
    }
}

出力結果

Number Of Cores: 2

論理プロセッサ数を取得する方法

論理プロセッサ数は最も簡単で、Environment.ProcessorCountプロパティを参照するだけで取得できます。WMIを使う必要もなく、クロスプラットフォームで動作するため、特別な理由がない限りこの方法が推奨されます。

class Program{
    public static void Main(){
        Console.WriteLine("Number Of Logical Processors: {0}",
        Environment.ProcessorCount);
        Console.ReadLine();
    }
}

出力結果

Number Of Logical Processors: 4

まとめ

CPUの情報取得方法を整理すると以下のようになります。

  • 論理プロセッサ数Environment.ProcessorCountで簡単に取得可能
  • 物理プロセッサ数・コア数:WMI(System.Management)を使用して取得

マルチスレッド処理や並列処理の最適化を行う際は、用途に応じて適切な情報を選択して活用しましょう。

  1. Excelで数値の平方根を求める3つの方法【SQRT・POWER・指数演算子】

    Microsoft Excelは、複雑な計算を効率的に行える強力なツールです。Excelを日常的に使っている方なら、数学的な計算処理に触れる機会も多いのではないでしょうか。しかし、意外とシンプルな計算でつまずくこともあります。その代表例が「平方根の計算」です。この記事では、Excelで数値の平方根を求める3つの方法をわかりやすく解説します。 Excelで平方根を計算する基本 SQRT関数、POWER関数、そして指数演算子(^)を使えば、Excelで簡単に平方根を計算できます。それぞれの特徴と使い方を順番に見ていきましょう。 1. SQRT関数を使って平方根を求める SQRT関数は、Excelに

  2. iPhone・iPadのシリアル番号を確認する6つの方法|端末が起動しないときもOK

    iPhone、iPad、iPod touchのシリアル番号を確認する必要がある場面は意外と多くあります。Appleサポートに技術的な問題を相談するとき、保証状況を確認したいとき、あるいは自分が使っているiPhoneの機種を特定したいときなど、その理由はさまざまです。 理由が何であれ安心してください。この記事では、シリアル番号を調べるための6つの簡単な方法を紹介します。デバイスの電源が入らない、外箱が見つからないといったケースでも役立つ方法を含んでいます。なお、一部のサポート窓口では、シリアル番号の代わりにIMEIでの対応を受け付けてもらえることもあります。 1. デバイスの背面を確認する 最も