2009-09-19 10 views
5

Javaで最大CPUクロックを取得する方法

Runtime.getRuntime().availableProcessors(); 

私はCPUの数を得ることができます。

どうすればクロック周波数を得ることができますか?

私は独立したソリューションを探していました。

+0

これはOS固有です。あなたはどのOSを実行していますか? –

+0

おそらく、プラットフォーム固有のソリューションだけが存在します(read/proc/cpuinfo?)。しかし、一般的には、これ以上周波数を伝えるのは容易ではありません...現在の周波数を意味しますか?または最大周波数?最大4GHzのホストを共有するVMの制限はないのですか? (このようなホストの4つは4GHzか1GHzか、それとも80MHzの現在のアイドル値を持っているのでしょうか) – viraptor

+0

この情報をどのように使用するのかはわかりませんが、クロック周波数はプロセッサの速さに対応していません計算を行うことができます。例えば、3GHzのPentium 4は、2.4GHzのCore 2 Duoよりも低速です。 – Jesper

答えて

6

Java SE APIには、CPUの周波数を返す機能はありません。

また、Runtime.availableProcessorsメソッドは、メソッドが呼び出された時点でJava仮想マシンが使用できるプロセッサの数を返します。したがって、必ずしもシステム内の実際のプロセッサの数を返すわけではありません。 Runtime.availableProcessors方法のためのJava API仕様から

は、Java仮想マシンが利用可能なプロセッサ の数を返します。

この値は、 仮想マシン の特定の呼び出し中に変更される可能性があります。利用可能な プロセッサの数に敏感な のアプリケーションは、したがって、 がこのプロパティをポーリングし、 がリソース使用量を適切に調整する必要があります。

このような情報を取得するには、おそらく、ネイティブ呼び出しを使用してオペレーティングシステムをJava Native Interface(JNI)経由で呼び出してください。

+0

ありがとうございます。非常に明確な。ネイティブメソッドを探していましたが、存在しなければJNIを勉強します。 ;) –

+0

これは、基盤となるハードウェアを正確にモデル化するのではなく、ハードウェアがサポートできる同時スレッドの数を大まかに示すことを目的としています。 –

関連する問題