Dalam bidang aplikasi Java merentas platform, selalunya penting untuk memantau metrik prestasi peringkat sistem seperti sebagai penggunaan cakera, penggunaan CPU, dan penggunaan memori. Walaupun metrik ini boleh menjadi berharga untuk memahami keseluruhan gelagat sistem, pengekstrakan mereka dalam cara platform-agnostik tanpa menggunakan JNI boleh mencabar.
Kelas Java Runtime menawarkan terhad set statistik berkaitan memori yang boleh memberikan beberapa cerapan. Ia membolehkan anda mendapatkan semula bilangan pemproses yang tersedia, jumlah memori percuma yang tersedia untuk JVM, had memori maksimum (jika ada) dan jumlah memori yang tersedia untuk JVM.
Untuk maklumat penggunaan cakera, kelas Fail Java menyediakan kaedah yang berguna. Anda boleh mendapatkan jumlah ruang, ruang kosong dan ruang yang boleh digunakan untuk setiap akar sistem fail pada sistem hos.
Kod berikut menunjukkan cara untuk mendapatkan semula beberapa sistem yang disebutkan di atas- metrik prestasi tahap menggunakan kelas Runtime dan Fail:
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); } } }
Dengan memanfaatkan teknik ini, anda boleh memperoleh prestasi peringkat sistem yang berharga metrik dalam aplikasi Java anda, membolehkan anda mengoptimumkan prestasi dan memantau penggunaan sumber merentas platform yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Metrik Prestasi Sistem di Java tanpa JNI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!