プログラムのパフォーマンスをチェックしようとしています。この投稿を参照します OSレベルのシステム情報を取得します 。 Runtime.availableProcessors()
を実行すると、4の答えが返されます。 availableProcessors() と読みましたが、このメソッドがプロセッサの数を返すことがわかります
私はWindows7コアi54gpを使用しています。
プロセッサの数は、基本的にコードを実行できる実行エンジンの数です。 i5のバリエーションの1つは、4コアCPUであるi5-7シリーズです。これらは、物理的に異なるプロセッサ(同じチップ内に存在する場合でも)である場合もあれば、ハイパースレッディングを使用している場合は論理プロセッサである場合もあります。
詳細については、 http://en.wikipedia.org/wiki/Intel_Core#Core_i5 および http://en.wikipedia.org/wiki/Hyper-threading を参照してください。
読んだように、availableProcessors()はnumber of processors available to the JVM
を返すメソッドです。 4は、JVMで現在使用可能なプロセッサの数を意味します。
これらの行は、Windowsおよびその他のオペレーティングシステムではnumber of logical cores
を返します。
クアッドコアCore i7サポートハイパースレッディングのコンピューターでは、8が返されます。
クアッドコアQ67のコンピューターでは、このメソッドは4を返します。
マルチコアプロセッサ (あなたの場合は Lynnfield のように見えます)があります。各コアは他のコアと同時に命令を実行できるため、各コアは情報の目的で個別のCPU(個別のプロセッサ)としてカウントされます。
Jvmプロセスで使用できるコアはありません。ハイパースレッディングが有効になっている場合は、実際よりも大きくなる可能性があります。
このコンテキストでは、「プロセッサ」は「独立して実行できるハードウェア」、つまりcpu coreです。
これは「プロセッサパッケージ」ではありません。購入する単一のハードウェアユニットです(実際には、1つのパッケージに4つの独立したCPUが含まれています)。