ホームページ >Java >&#&チュートリアル >JNI を使用せずに Java でシステム パフォーマンス メトリクスを取得するにはどうすればよいですか?

JNI を使用せずに Java でシステム パフォーマンス メトリクスを取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 08:47:17736ブラウズ

How to Get System Performance Metrics in Java without JNI?

JNI を使用せずにシステム全体のパフォーマンス メトリックを取得する方法

クロスプラットフォーム Java アプリケーションの領域では、多くの場合、次のようなシステム レベルのパフォーマンス メトリックを監視することが重要です。ディスク使用量、CPU 使用率、メモリ消費量など。これらのメトリクスはシステム全体の動作を理解するのに役立ちますが、JNI に頼らずにプラットフォームに依存しない方法でメトリクスを抽出するのは困難な場合があります。

Java ランタイム クラス

Java ランタイム クラスは、限定された機能を提供します。いくつかの洞察を提供できるメモリ関連の統計のセット。これにより、使用可能なプロセッサの数、JVM で使用可能な空きメモリの量、最大メモリ制限 (存在する場合)、および JVM で使用可能な合計メモリを取得できます。

Java ファイル クラス (Java 1.6 )

ディスク使用量の情報については、Java File クラスが便利なメソッドを提供します。ホスト システム上の各ファイル システム ルートの合計スペース、空きスペース、および使用可能なスペースを取得できます。

サンプル コード

次のコードは、前述のシステムの一部を取得する方法を示しています。 Runtime クラスと File クラスを使用したレベルのパフォーマンス メトリック:

public class SystemInfoMonitor {

    public static void main(String[] args) {
        // Runtime class methods for memory information
        int availableProcessors = Runtime.getRuntime().availableProcessors();
        long freeMemory = Runtime.getRuntime().freeMemory();
        long maxMemory = Runtime.getRuntime().maxMemory();
        long totalMemory = Runtime.getRuntime().totalMemory();

        // File class methods for disk usage information (requires Java 1.6+)
        File[] roots = File.listRoots();
        for (File root : roots) {
            long totalSpace = root.getTotalSpace();
            long freeSpace = root.getFreeSpace();
            long usableSpace = root.getUsableSpace();
        }

        // Print the collected information
        System.out.println("Available processors: " + availableProcessors);
        System.out.println("Free memory (bytes): " + freeMemory);
        System.out.println("Maximum memory (bytes): " + (maxMemory == Long.MAX_VALUE ? "no limit" : maxMemory));
        System.out.println("Total memory available to JVM (bytes): " + totalMemory);
        System.out.println("Disk usage information:");
        for (File root : roots) {
            System.out.println("File system root: " + root.getAbsolutePath());
            System.out.println("Total space (bytes): " + totalSpace);
            System.out.println("Free space (bytes): " + freeSpace);
            System.out.println("Usable space (bytes): " + usableSpace);
        }
    }
}

これらの手法を活用することで、Java で貴重なシステム レベルのパフォーマンス メトリックを取得できます。アプリケーションを統合し、パフォーマンスを最適化し、さまざまなプラットフォーム間でのリソース使用率を監視できるようにします。

以上がJNI を使用せずに Java でシステム パフォーマンス メトリクスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。