欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

JVM入门学习小计二

程序员文章站 2022-04-07 18:10:30
JVM学习1.出现OOM,研究出错原因能够看到代码第几行出错:内存快照分析工具,MAT(eclipes),Jprofiler;Debug,一行行分析代码(实际项目不现实);MAT,Jprofiler作用:分析Dump内存文件,快速定位内存泄漏;获得堆中的数据;获得大的对象等;;这里使用IDEA工具,需安装Jprofiler插件,如下:百度查找JProfiler工具,下载安装,除了路径需要修改的改下,其余无脑下一步~到这里后,选择注册信息,key为L-Larry_Lau@1...

JVM学习

1.出现OOM,研究出错原因

  • 能够看到代码第几行出错:内存快照分析工具,MAT(eclipes),Jprofiler;
  • Debug,一行行分析代码(实际项目不现实);
  • MAT,Jprofiler作用:
  1. 分析Dump内存文件,快速定位内存泄漏;
  2. 获得堆中的数据;
  3. 获得大的对象等;;
  • 这里使用IDEA工具,需安装Jprofiler插件,如下:
    JVM入门学习小计二
  • 百度查找JProfiler工具,下载安装,除了路径需要修改的改下,其余无脑下一步~
    JVM入门学习小计二
    到这里后,选择注册信息,key为L-Larry_Lau@163.com#40775-3wle0g1uin5c1#0674
    JVM入门学习小计二
    IDEA版本没有最新,选个最新的就行了,然后就OK了
    这时重启的IDEA会多出以下标志:
    JVM入门学习小计二
    然后配置地址后就可以正常使用了:
    JVM入门学习小计二

1.首先,编写一个会导致jvm内存爆满的程序,为防止电脑卡机,可先改jvm最大内存,如下:
JVM入门学习小计二

		byte[] array = new byte[1*1024*1024];
        ArrayList<Object> list = new ArrayList<>();
        int count = 0;
        try{
            while (true){
                list.add(new demo01());
                count++;
            }
        }catch (Exception e){
            System.out.println("count:"+count);
            e.printStackTrace();
        }
  1. 运行后会产生dump文件JVM入门学习小计二JVM入门学习小计二
  1. 打开相应的dump文件,就可以很明显的看出程序哪里出问题了!
    JVM入门学习小计二
  1. 可定位到具体的行数如下:
    JVM入门学习小计二
  • 后续下篇,有误麻烦大佬指正!

本文地址:https://blog.csdn.net/weixin_41961894/article/details/110826038