2.5堆内存诊断

jps工具

  • 查看当前系统中有哪些java进程

jmap工具

  • 查看堆内存占用情况

jconsole工具

  • 图形化界面,多功能的监测工具,可以连续监测

实验代码

public class Demo1 {
    public static void main(String[] args) throws InterruptedException {
        System.out.println("1...");
        Thread.sleep(30000);
        byte[] array = new byte[1024 * 1024 * 10];
        System.out.println("2...");
        Thread.sleep(30000);
        array = null;
        System.gc();
        System.out.println("3...");
        Thread.sleep(100000L);
    }
}

jps 查看java进程

jmap -heap {PID}

起始Eden Space使用量为used = 2520608 (2.403839111328125MB)

创建一个10M的对象后,Eden Space使用量为used = 13006384 (12.403854370117188MB)

垃圾回收后,Eden Space使用量为used = 838880 (0.800018310546875MB)

相比纯文本工具,图形化工具总更显得直观。下面我们介绍一款图形化工具-jconsole,jconsole可以实时的监控运行程序的以下指标

  • 堆内存使用量

  • 线程数

  • cpu占用率

Last updated

Was this helpful?