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