线上oom如何处理

安装MAT工具

https://projects.eclipse.org/projects/tools.mat

 解压之后双击蓝色的exe即可使用

打开xx.hprof文件,即会出现页面

点击See stacktrace按钮,即会出现oom错误的地方

可以看到test6.main方法导致的,第12行,nice

 

那么如何生成这个xx.hprof?

 

使用idea示范:

public class test6 {
    public static void main(String[] args) {
        StringBuffer stringBuffer=new StringBuffer();
        while (true){
            stringBuffer.append("大学四年说长不长,说短也短。时光转瞬即逝。这让我想起了朱自清的《匆匆》——“燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?”,“去的尽管去了,来的尽管来着;去来的中间,又怎样地匆匆呢?早上我起来的时候,小屋里射进两三方斜斜的太阳。太阳他有脚啊,轻轻悄悄地挪移了;我也茫茫然跟着旋转。于是——洗手的时候,日子从水盆里过去;吃饭的时候,日子从饭碗里过去;默时,便从凝然的双眼前过去。我觉察他去的匆匆了,伸出手遮挽时,他又从遮挽着的手边过去。天黑时,我躺在床上,他便伶伶俐俐地从我身上跨过,从我脚边飞去了。等我睁开眼和太阳再见,这算又溜走了一日。我掩着面叹息。但是新来的日子的影儿又开始在叹息里闪过了。”是啊,从九月到现在,100多个日子已经从我手间溜去,像针尖上一滴水滴在大海里,我的日子滴在时间的河流里,没有声音,也没有影子。\n" +
                    "许多人从高中的应试教育中解放出来后,神经从高度紧张的神经一下被放松了,以至于刚进入大学时特别茫然,不知所措;在丰富的大学生活与学习中找不到两者都可以兼顾的那个平衡点。写这篇大学四年规划书让我有时间静下来,好好想想,我要怎么抓住这四年时间,让它不流逝得那么快,让四年后出了校园的我不后悔。人生也许很长,但只有大学这几年是可以充实自己的。这段学习的时期,过了就很难再找回来了。\n" +
                    "其实,大学还是要以学业为本。以前我们为考上一个好的大学而努力奋斗,现在我们依然要为学分而努力学习。有些过来人说,大学的考试及格就可以了。我却不这么认为。只是满足于及格线不是我的目标。所以,在这里我想说,树立正确的学业观对我们来说很重要,这是完成好大学学业的前提。观念是行动的先导。这也有利于以后我们对自己人生发展规划的思考。\n" +
                    "那么,什么是正确的学业观呢?正确的学业观能够正确处理好学业与专业,职业,事业,就业之间的关系。\n" +
                    "~ 1 / 4 ~\n" +
                    "正确处理好学业与专业的关系。都说兴趣是最好的老师,如果能将自己的兴趣与自己的专业结合起来,对于提高我们学习的积极性是很有帮助的。很多人因为这样那样的原因而去到了自己不喜欢的专业学习。对于这点,我们学校很人性化的为大家提供了一次转专业的机会,就是希望大家能够在自己的兴趣与学业之间找到平衡点,激发大家学习的主动性和积极性。希望想转专业的同学利用好这次机会。认真地想想,好好把握住机会。就我个人而言,我的观点是:既来之,则安之。既然来到了广告专业,那么就安心的学习专业知识和技能。这是个富有挑战性的专业,以后的就业也是充满了竞争。但是,只要脚踏实地,就会做好。\n" +
                    "我没有天赋却有不服输的斗志。\n" +
                    "正确处理好学业与职业,事业的关系。在学习中,既要学习理论知识,也要具备一定的专业技能。理论的学习过程是枯燥而乏味的,但它却是我们学好专业基础知识的前提。所以,就算是让你上课是昏昏欲睡的理论课,也不能随随便便的就旷课,逃课。而专业技能是必备的,不会就多问问。只要自己愿意开口,我想没有你学不到的技能。用一句打趣的话说就是“嘴巴除了用来吃东西,就是用来问问题的!”这也是以后找工作我们能拿得出来给招聘单位看的东西。\n" +
                    "正确处理好学业与就业的关系。四年大学出来到社会上工作,大部分人找到的工作都是和自己专业不对口的。 尽管如此,我们还是要认真对待自己的学业。其实,不管是学什么专业知识,最重要的不是学习书本中的知识,而是在学习过程中,你怎么学会提出并解决问题的能力。这也是以后工作中体现我们工作能力的最重要的标准之一。因为公司要的不是抱着专业中的条条框框做事的人。\n" +
                    "在我们学习处理好以上这些关系时,我们还要制定出一些规划。就本科大学四年规划来说,规划的顺序应该是:大学四年的规划—大学一年的规划—大学一学期的规划—大学一个月的规划—大学一星期的规划—大学一天的规划。就大学四年大致规划而言,我的具体规划如下所说:\n" +
                    "~ 2 / 4 ~\n" +
                    "大学第一年,适应与调整。开学至今这段时间主要是适应新环境与以往不学习方式的适应过程。要学会加强自己的时间观念,合理安排自己的作息和学习的时间,培养自己主动学习的意识。接下来就是要好好学习所学的理论知识和准备明年的英语四级考试。\n" +
                    "我想,期中读书报告已经给了大家一些提醒——理论知识要记住。不管是用什么方法都要记下来,这是最基本的要求。不然写论文的时候,脑子空空,不知道到底学了什么,怎么论述自己的观点,怎么把自己的观点写得圆满。还有就是英语了。英语四级是必须要过的科目,想在大一的时候解决了。因为其实大一的课余时间是很充足的,好好利用这些时间,背背单词,也给自己一个提醒——不要把时间浪费在网络和睡觉事情上。而且,现在大半个学期已经过了,应该实是已经适应新的学习状态了。不能像放假在家那样,一睡到中午,一天的时间就过了一半了。有事没事就多去图书馆,就算\n" +
                    "更多追问追答\uE771\n");
        }
    }
}

在这里点击编辑,执行这个操作的参数

在第二行配置jvm运行参数,如下:

 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./oom.hprof

run之后会在这个项目下生成oom.hprof文件,然后通过mat工具进行查看即可

 

这两个参数的意义:

 -XX:+HeapDumpOnOutOfMemoryError当首次遭遇OOM时导出此时堆中相关信息

-XX:HeapDumpPath=./oom.hprof 指定导出堆信息时的路径或文件名

参考https://blog.csdn.net/sdujava2011/article/details/50086933

 

本文参考https://blog.csdn.net/fenglibing/article/details/82692169

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值