• 7、JProfiler工具分析OOM原因


    JProfiler工具分析OOM原因

    11密匙(亲测可用)

    L-J11-Everyone#speedzodiac-327a9wrs5dxvz#463a59

    A-J11-Everyone#admin-3v7hg353d6idd5#9b4

    JProfiler10 序列号

    A-tfbyKUM9Gw-KhGMbpYhS1#14246

    S-QCM1I25qH1-CkLfdYOFs2#1018

    L-GG5oEVjKQX-xEJjkR3QBb#1847

    L-idEVpl1jvU-Ww3AnQGBUY#4148

    第一步:安装JProfile(并且在idea里配置好位置(在bin里面))

     

     

     

    第二步:写测试OOM代码

    1. 我们这样是捕获不到的(Exception);因为我们这里是一个OOMerror,而Exception继承了Throwable只能捕获异常。(ctrl+alt+t:代码try catch还可以其他例如if else)

     

    这里就只能有错误而无法捕捉输出count了

     

    2、所以我们用Error

     

     

    可以显示出第几次count出现问题了。还有dump的文件名字

     

    其中-Xms为初始化内存大小默认1/64(也就是我们的jvm跟电脑运行内存的比例)

    -Xmx最大分配内存默认为1/4(就是我们虚拟机分配的内存比例)

    -XX:+PrintGCDetails   打印GC垃圾回收信息

    -XX:+HeapOnOutOfMemoryError //输出一个OOM(堆溢出)的分析文件(OOM Dump文件)

    -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError

    第三步:JProfiler分析

    1. 打开java程序src下的dump文件双击(用的是Jprofiler打开的,也就是我们的-XX配置生效了)

     

    1. 先看Classes选项(发现是Char[]出现问题,但是还不清楚具体代码第几行出现问题)

     

    1. 看其中的Biggest Object选项(知道是ArrayList问题,还是清楚代码具体代码位置)

     

    1. 看旁边的Thread Dump下的我们具体线程(我们这里是main线程)。代码13有问题

     

     

  • 相关阅读:
    python基于PHP+MySQL的在线汽车租赁管理系统
    从五大维度数据解析以太坊合并前后的变化
    Java的jstack命令使用详解
    分享PPT设计思路,让你的PPT更吸睛
    C++11新特性① | C++11 常用关键字实战详解
    Java 21 新特性:Record Patterns
    my2sql工具之快速入门
    【Python】Numpy生成坐标网格
    java智慧社区信息平台springboot
    uni-app - 日期 · 时间选择器
  • 原文地址:https://blog.csdn.net/logtcm4/article/details/127743806