クロスプラットフォーム Java アプリケーションの領域では、多くの場合、次のようなシステム レベルのパフォーマンス メトリックを監視することが重要です。ディスク使用量、CPU 使用率、メモリ消費量など。これらのメトリクスはシステム全体の動作を理解するのに役立ちますが、JNI に頼らずにプラットフォームに依存しない方法でメトリクスを抽出するのは困難な場合があります。
Java ランタイム クラスは、限定された機能を提供します。いくつかの洞察を提供できるメモリ関連の統計のセット。これにより、使用可能なプロセッサの数、JVM で使用可能な空きメモリの量、最大メモリ制限 (存在する場合)、および JVM で使用可能な合計メモリを取得できます。
ディスク使用量の情報については、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 サイトの他の関連記事を参照してください。