常见内存调优工具介绍及使用

内存调优问题是面试过程中常被问到的问题,这篇文章就简单了解一下有哪些内存调优的工具 ,常见问题如下:
1,实际开发过程中你遇到过什么问题?你是如何解决的?
2,实际项目上线之后,如果出现了卡顿现象,你是如何分析,如何解决的?
3,你有用过内存诊断工具吗?
4,实际开发中你是如何进行GC调优的?
5,垃圾回收之后,内存占用仍然很高.该如何分析?
6,如何查看堆内存中对象的个数?
7,线上环境JVM排查与dump日志排查有做过吗?
常见的内存诊断工具如下表:
工具 含义
在这里插入图片描述
案例code

//jmap命令   通过断点形式演示
public class JmapTest {
    @SuppressWarnings("unused")
    public static void main(String[] args) {
        System.out.println("1.......");
        
        System.out.println("begin....");
        
        byte[] array = new byte[1024*1024*10];  //10MB 监测是堆内存使用情况
        
        System.out.println("2........");
        
        System.out.println("mid....");
        
        array = null;
        
        System.gc();
        
        System.out.println("3........");

        System.out.println("end........");
    }
}

//jvisualvm 命令
public class LhdDemo {

    public static void main(String[] args) throws Exception {
        List<Student> students = new ArrayList<Student>();
        for (int i = 0; i < 200; i++) {
            students.add(new Student());
        }
        Thread.sleep(1000000000L);
        
    }

}
class Student{
    private byte[] big = new byte[1024*1024];
}
//visualvm 插件案例
public class GcDemo {

    public static void main(String[] args) {
        List<byte[]> list = new ArrayList<byte[]>();

        int i = 0;

        boolean flag = true;

        while (flag) {
            try {
                i++;
                list.add(new byte[1024*1024]); // 每次增加1M
                Thread.sleep(70);
            } catch (Throwable e) {
                e.printStackTrace();
                flag = false;
                System.out.println("count..." + i);
            }
        }
    }
}

需要安装插件:
com-sun-tools-visualvm-modules-visualgc_1
步骤:
第一步:
在这里插入图片描述
第二步
在这里插入图片描述
第三步
在这里插入图片描述
第四步:
在这里插入图片描述
第五步:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值