当前位置: 首页 > news >正文

【JVM】内存快照分析工具Jprofiler

OOM了,怎么办?

最好能够快速找到代码第几行出错:

内存快照分析工具:MAT,Jprofiler

MAT、Jprofiler 作用:

  • 分析Dump内存文件,快速定位内存泄漏。
  • 获得堆中的数据
  • 获得大的对象

Jprofiler安装:

  1. IDEA插件中搜索Jprofiler即可,安装好restart IDEA
  2. 去网页搜索Jprofiler,下载对应的操作系统的安装文件

     3.安装好应用即可。

Jprofiler使用:

举例说明,写一个OOM的情况

package com.gao.test.JVM;

import java.util.ArrayList;

/**
 * @Author lie
 * @Description
 */

/**
 *	VM options:
 *   -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
 *
 *   -Xms:初始化内存分配大小 (默认 1/64)
 *   -Xmx:最大分配内存 (默认 1/4)
 *   -XX:+PrintGCDetails    打印GC垃圾回收信息
 *   -XX:+HeapDumpOnOutOfMemoryError    打印OOM信息
  */

public class OomTest {
    byte[] array = new byte[1024 * 1024]; //1m

    public static void main(String[] args) {
        ArrayList<OomTest> list = new ArrayList<>();
        int count = 0; //计数器
        try {
            while (true){
                list.add(new OomTest());  //问题所在
                count += 1;
            }
        }catch (Error e){ //要用ERROR捕捉OOM错误
            System.out.println("count = "+count);  //打印创建了几个对象后OOM
            e.printStackTrace();
        }

    }
}

运行后看看

dump出来的文件在这

用Jprofiler打开,分析并排查原因:

查看线程,找到问题所在

 

相关文章:

  • Linux 内核参数:min_free_kbytes
  • SpringBoot中使用(@NotEmpty、@NotBlank、@NotNull)注解校验实体类参数
  • 两化融合贯标办理周期和好处是什么
  • 基于双碳背景和趋势讲述AcrelEMS企业微电网能效管理系统-Susie 周
  • PYQT5实现图片显示、通过滚轮缩放图片、通过鼠标拖动图片移动,搞懂所有细节
  • 利用MATLAB绘制箱线图—箱线图在高光谱图像处理中的应用
  • ERPS协议学习笔记
  • node.js基于微信小程序的校园失物招领系统毕业设计源码072343
  • 1.4 Elasticsearch索引的mappings映射
  • ams启动过程以及App的启动过程
  • Java毕业设计-新闻段子发布管理系统
  • maven依赖冲突导致tomcat启动失败
  • Mysql基础(四)——约束与表关系
  • 聚苯乙烯微球表面原位接枝含糖聚合物/pH响应性磁性聚苯乙烯基多孔微球制备方法
  • Curator使用手册
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • create-react-app项目添加less配置
  • emacs初体验
  • EventListener原理
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • python_bomb----数据类型总结
  • Python利用正则抓取网页内容保存到本地
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 测试如何在敏捷团队中工作?
  • 关于extract.autodesk.io的一些说明
  • 模型微调
  • 双管齐下,VMware的容器新战略
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • !$boo在php中什么意思,php前戏
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #微信小程序:微信小程序常见的配置传旨
  • (1)(1.13) SiK无线电高级配置(六)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)ssm高校实验室 毕业设计 800008
  • (九)One-Wire总线-DS18B20
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (十)T检验-第一部分
  • (十一)图像的罗伯特梯度锐化
  • (转)ABI是什么
  • .form文件_一篇文章学会文件上传
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .Net Web项目创建比较不错的参考文章
  • .NET 的程序集加载上下文
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .NET文档生成工具ADB使用图文教程
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [AIGC 大数据基础]hive浅谈
  • [BUG]vscode插件live server无法自动打开浏览器
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [CERC2017]Cumulative Code
  • [gdc19]《战神4》中的全局光照技术
  • [IDF]啥?