轉:java.lang.management 通過JMX監控,管理JVM運行

通過java.lang.management 你可以看看JVM是怎麼處理內存的。JVM處理內存分爲兩部分:
Heap堆,加載類和對象的,這個就是垃圾回收器作用的地方。Non-Heap,有些Garbage Collector也作用於此。
看下邊這個例子:

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;

public class ShowMemory {
    static String x;
    public static void main(String arg[]) {
        ShowMemory sm = new ShowMemory();
        sm.show();
        x = "";
        for(int i=0; i<1000; i++)
            x += " string number " + i;
        sm.show();
        x = null;
        sm.show();
        MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
        mem.gc();
        sm.show();
    }
    void show() {
        MemoryMXBean mem = ManagementFactory.getMemoryMXBean();
        MemoryUsage heap = mem.getHeapMemoryUsage();
        System.out.println("Heap committed=" + heap.getCommitted() +
                            " init=" + heap.getInit() +
                            " max=" + heap.getMax() +
                            " used=" + heap.getUsed());
    }
}

 

 

import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;

public class ShowSystem {
    public static void main(String arg[]) {
        OperatingSystemMXBean op = ManagementFactory.getOperatingSystemMXBean();
        System.out.println("Architecture: " + op.getArch());
        System.out.println("Processors: " + op.getAvailableProcessors());
        System.out.println("System name: " + op.getName());
        System.out.println("System version: " + op.getVersion());
        System.out.println("Last minute load: " + op.getSystemLoadAverage());
    }
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章