0

プロセッサタイプを取得する方法は知っていますが、おそらくそれが唯一の方法ですが、実際には、アプリケーションからマルチコアプロセッサで実行されているのかハイパースレッディングシングルコアプロセッサで実行されているのかを判断する方法を探しています。

(背景:一部のクライアントのホスティングプロバイダーは、VMWareイメージを介してどのリソースを利用できるかについて非常にあいまいです。このアプリケーションはマルチコアで実行されることになっていますが、最後の「移動」以降、パフォーマンスが低下しています。通常はマルチコア、一方のコアは一方のスレッドで急上昇し、もう一方のスレッドでは急上昇しません。この「マルチコア」では、シングルスレッドのアプリケーションでも両方のプロセッサが急上昇します。)

4

1 に答える 1

4

System.Environment.ProcessorCountこれにはハイパースレッドプロセッサも含まれます。どのVmwareが公開する場合と公開しない場合があります。プロセッサがVT対応であり、ベアメタル対応のハイパーバイザーテクノロジを使用している場合に公開される可能性が高くなります。

XP-SP3/WIN2k3以降を使用している場合WMIを使用して以下を引き出すことができます。

Win32_ComputerSystem.NumberOfProcessors returns physical count

Win32_ComputerSystem.NumberOfLogicalProcessors returns logical count

値が同じである場合は、システムにHTがないか、有効になっていない可能性があります。

このチュートリアルから、.NETでWMI情報を引き出す方法の調査を開始できます。

于 2009-11-30T00:30:42.990 に答える