ホームページ >バックエンド開発 >C++ >.NET/C# で物理プロセッサ、コアプロセッサ、論理プロセッサの数を確認するにはどうすればよいですか?

.NET/C# で物理プロセッサ、コアプロセッサ、論理プロセッサの数を確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-18 20:01:12454ブラウズ

How Can I Determine the Number of Physical, Core, and Logical Processors in .NET/C#?

.NET/C# の CPU コアの数を決定する

紹介:

CPU コアの数を決定することは、コードのパフォーマンスを最適化し、ハードウェア機能を活用するために重要です。 .NET と C# では、この情報を取得するためのいくつかの手法が提供されています。

プロセッサーとコア:

プロセッサ関連の用語は次のとおりです:

  • 物理プロセッサ: システムに存在する実際の CPU チップ。
  • コア: 物理プロセッサー内の単一の処理ユニット。
  • 論理プロセッサ: オペレーティング システムで使用できる仮想プロセッサの合計数。

これらの値は、特にマルチコアプロセッサとハイパースレッディングを備えたシステムでは異なる場合があります。

コアの数を見つけます:

物理プロセッサ:

物理プロセッサの数を確認するには、次のコードを使用します:

<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("物理处理器数量:{0}", item["NumberOfProcessors"]);
}</code>

コア:

コアの数を取得するには、次のコードを使用します:

<code class="language-csharp">int coreCount = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    coreCount += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine("核心数量:{0}", coreCount);</code>

論理プロセッサ:

System.Environment クラスを使用すると、論理プロセッサの数に直接アクセスできます:

<code class="language-csharp">Console.WriteLine("逻辑处理器数量:{0}", Environment.ProcessorCount);</code>

注: プロジェクトに System.Management.dll への参照を忘れずに含めてください。

Windows でプロセッサを除外する:

Windows API を使用すると、Windows によって除外されたプロセッサを、たとえばブート設定を通じて検出できます。

<code class="language-csharp">static void Main(string[] args)
{
    int deviceCount = 0;
    IntPtr deviceList = IntPtr.Zero;
    // ... (代码省略)
}</code>

このメソッドは、システム内に存在するプロセッサの総数をより包括的に説明します。

以上が.NET/C# で物理プロセッサ、コアプロセッサ、論理プロセッサの数を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。