wuzhiの日記: Javaによるシステム負荷の取得 2
日記 by
wuzhi
インタフェース OperatingSystemMXBean
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/management/OperatingSystemMXBean.html
のgetSystemLoadAverage()で取得できるらしい.
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
...
OperatingSystemMXBean osMXBean = ManagementFactory.getOperatingSystemMXBean();
System.out.println("getAvailableProcessors() : "+osMXBean.getAvailableProcessors());
こんな感じでやれば表示されるようだが,試しに私の環境で動かしてみたら,-1.0が返された.
私の環境では利用できないのだろうか.
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/management/OperatingSystemMXBean.html
のgetSystemLoadAverage()で取得できるらしい.
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
...
OperatingSystemMXBean osMXBean = ManagementFactory.getOperatingSystemMXBean();
System.out.println("getAvailableProcessors() : "+osMXBean.getAvailableProcessors());
こんな感じでやれば表示されるようだが,試しに私の環境で動かしてみたら,-1.0が返された.
私の環境では利用できないのだろうか.
LoadAverageはUNIX系のみ (スコア:0)
Windowsの場合は、↓のような方法でJVMのCPU時間が取得可能ですが、OS全体のCPU時間ではないことに注意.
http://www.insuite.jp/blog/archives/74 [insuite.jp]
API仕様の (スコア:0)
このメソッドを実装するのに高額な費用を要するプラットフォームでは、負荷平均を利用できないことがあります。
ってありますね。あと
戻り値:
システム負荷平均。利用できない場合は負の値
とも。分かってて書いていると思うのですが。