システム

Java – 現在のCPU使用率を取得する方法を解説

Javaで現在のCPU使用率を取得するには、OperatingSystemMXBeanを使用します。

java.lang.managementパッケージに含まれるこのインターフェースを利用し、getSystemCpuLoadメソッドでシステム全体のCPU使用率を取得できます。

このメソッドは0.0から1.0の範囲で値を返し、100%に換算するには値に100を掛けます。

注意点として、JVMの実装やOSによってサポート状況が異なる場合があります。

JavaでCPU使用率を取得する方法

JavaでCPU使用率を取得するためには、OperatingSystemMXBeanインターフェースを使用します。

このインターフェースは、Javaの標準ライブラリに含まれており、システムのオペレーティングシステムに関する情報を取得するためのメソッドを提供しています。

以下に、CPU使用率を取得するためのサンプルコードを示します。

import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean; // Sunの実装を使用

public class App {
    public static void main(String[] args) {
        // OperatingSystemMXBeanのインスタンスを取得
        OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

        // CPU使用率を取得
        double cpuUsage = osBean.getSystemCpuLoad() * 100; // パーセンテージに変換

        // 結果を表示
        System.out.printf("現在のCPU使用率: %.2f%%\n", cpuUsage);
    }
}

このコードでは、OperatingSystemMXBeanを使用してシステムのCPU使用率を取得し、パーセンテージ形式で表示しています。

getSystemCpuLoad()メソッドは、CPUの使用率を0.0から1.0の範囲で返すため、100を掛けてパーセンテージに変換しています。

出力結果は以下のようになります。

現在のCPU使用率: 15.25%

この方法を使用することで、Javaアプリケーション内で簡単にCPU使用率をモニタリングすることができます。

応用例:CPU使用率のモニタリング

CPU使用率を定期的にモニタリングすることで、システムのパフォーマンスを把握し、リソースの最適化や問題の早期発見に役立てることができます。

以下に、一定間隔でCPU使用率を取得し、コンソールに表示するサンプルコードを示します。

import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean; // Sunの実装を使用
import java.util.Timer;
import java.util.TimerTask;

public class App {
    public static void main(String[] args) {
        // OperatingSystemMXBeanのインスタンスを取得
        OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();

        // タイマーを設定して定期的にCPU使用率を取得
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                // CPU使用率を取得
                double cpuUsage = osBean.getSystemCpuLoad() * 100; // パーセンテージに変換

                // 結果を表示
                System.out.printf("現在のCPU使用率: %.2f%%\n", cpuUsage);
            }
        }, 0, 1000); // 5秒ごとに実行
    }
}

このコードでは、Timerクラスを使用して、5秒ごとにCPU使用率を取得し、コンソールに表示します。

scheduleAtFixedRateメソッドを使って、指定した間隔でタスクを実行するように設定しています。

出力結果は以下のようになります。

現在のCPU使用率: 15.25%
現在のCPU使用率: 16.10%
現在のCPU使用率: 14.75%
現在のCPU使用率: 15.50%

このように、CPU使用率を定期的にモニタリングすることで、システムの状態を把握し、必要に応じて対策を講じることが可能です。

まとめ

この記事では、Javaを使用してCPU使用率を取得する方法について解説しました。

具体的には、OperatingSystemMXBeanを利用してシステムのCPU使用率を取得し、さらに定期的にモニタリングする方法を紹介しました。

これを活用することで、システムのパフォーマンスを把握し、必要に応じてリソースの最適化を行うことが可能です。

ぜひ、実際のプロジェクトに応じてこの技術を活用し、システムの健全性を維持するための一助としてください。

関連記事

Back to top button