.NET/C# の CPU コアの数を決定する
.NET/C# アプリケーションのリソース使用率を最適化するには、利用可能な CPU コアの数を理解することが重要です。この記事では、開発者がマルチスレッドとパフォーマンスの最適化について情報に基づいた意思決定を行えるように、この情報を取得するいくつかの方法を説明します。
物理プロセッサ、コア、論理プロセッサ
物理プロセッサ、コア、論理プロセッサの数を区別することが重要です。物理プロセッサは実際のハードウェア ユニットを表し、コアはプロセッサ内の単一の実行ユニットです。論理プロセッサはコアを仮想化したもので、オペレーティング システムがスレッドを別個のエンティティとして提示することで、より効率的にスレッドをスケジュールできるようになります。
コア数を取得します
.NET/C# では、CPU コアの数を取得する方法がいくつかあります。
論理プロセッサ (環境クラス)
Environment クラスは、論理プロセッサの数へのアクセスを提供します:
<code class="language-csharp">Console.WriteLine("逻辑处理器数量:{0}", Environment.ProcessorCount);</code>
コア (WMI)
WMI (Windows Management Instrumentation) を使用すると、コアの数を取得できます:
<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>
物理プロセッサ (WMI)
.NET Core では、WMI を使用して物理プロセッサの数を取得できます。
<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get()) { Console.WriteLine("物理处理器数量:{0}", item["NumberOfProcessors"]); }</code>
Windows で除外されるプロセッサ (Windows API)
setupapi.dll の Windows API 呼び出しにより、Windows で除外されたプロセッサを検出できます:
<code class="language-csharp">static void Main(string[] args) { int deviceCount = 0; IntPtr deviceList = IntPtr.Zero; // 处理器类ID的GUID Guid processorGuid = new Guid("{50127dc3-0f36-415e-a6cc-4cb3be910b65}"); ... Console.WriteLine("核心数量:{0}", deviceCount); }</code>
概要
この記事では、.NET/C# で CPU コアの数を取得するいくつかの方法を説明します。これらの手法を理解することで、開発者はリソースの使用率を最適化し、スレッドのワークロードのバランスをとり、アプリケーションのパフォーマンスを向上させることができます。
以上が.NET/C# アプリケーションの CPU コアの数を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。