java判断oom_OOM排查
1.一段会导致OOM的代码
Java堆用于存储对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间可达性路径来避免垃圾回收机制清除这些对象,就会在对象数量达到最大堆容量限制后产生内存溢出异常
import java.util.ArrayList;
import java.util.List;publicclass OOMTest {public static void main(String[]args) {int i=0;
try {
String s="hello";
List list=new ArrayList();while(true){
list.add(s);
s=s+s;
i++;
}
}catch (Throwable e){
e.printStackTrace();
System.out.println(i);
}
}
}
2.排查过程
1. javac OOMTest.java
说明:编译出class文件
2. java -Xmx102m -Xms102m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E:/memory.hprof OOMTest
说明:
-Xmx102m -Xms102m 设置堆内存最大值,最小值为102m
-XX:+HeapDumpOnOutOfMemoryError 就是当你发生OOM时导出你的堆快照信息
-XX:HeapDumpPath 设置导出的路径
3. jvisualvm
这个可以在你的命令行里敲也可以在你的Jdk包下找
打开我们的VisualVM
装入我们的hprof文件,就可以看到对应信息了
这里就可以看到我们的String占的比例很大
List中也全是String的数据,再个根据出错的行数,不难判断哪里出现了问题
总结:
1.dump出我们的堆的快照信息
2.利用JVisualVM来进行判断哪里出了问题
java判断oom_OOM排查相关推荐
- 判断字符串不包含某个字符php,java判断字符串是否包含某个字符的方法
java判断字符串是否包含某个字符的方法: 一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2: ...
- java判断总共天数_Java判断两个日期相差天数的方法
本文实例讲述了Java判断两个日期相差天数的方法.分享给大家供大家参考.具体如下: import java.util.Calendar; public class DateDifferent{ pub ...
- java 包含汉字,【转载】Java判断字符串中是不是包含汉字
[转载]Java判断字符串中是否包含汉字 import java.util.regex.Matcher; import java.util.regex.Pattern; public class If ...
- java判断回文字符串几种简单的实现
11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...
- java - 判断 字符串是否为空
java - 判断 字符串是否为空 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1:if(s == null || s.equals(""));方法二: 比较字符 ...
- Java 判断字符串是否为空的四种方法、优缺点与注意事项
以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: ...
- java判断括号是否闭合_用 java 判断 括号是否完全匹配
用 java 判断 括号是否完全匹配: package emp; import java.util.Stack; public class Parentheses { public static vo ...
- java 判断 中文字符_java中判断字符串中是否有中文字符
package com.meritit.test; public class TestChart { public static void main(String[] args) throws Exc ...
- Java判断一组数字是否是等差数列
Java判断一组数字是否是等差数列 公式: 1.先排序 2.当前数=第一个数+相邻两数的差[公差]*当前位置 eg: 1,3,5 每个数字之间相差2,假如当前数是5,则与前面相差两个2, 因为如果是等 ...
最新文章
- 2021年大数据Spark(五):大环境搭建本地模式 Local
- ubuntu安装ssh,安装失败
- DataSnap 2009 系列之二 (方法篇)
- 用java实现Gaunt积分
- PHP随机输出视频API源码,php 32行代码简单实现抖音无水印视频api,附前台页面
- 【IT界的厨子】酱香鲈鱼
- win7 管理iphone日历_大师给你传授win7系统安装桌面日历的途径
- Redis 6 将采用全新协议 RESP3,以提供客户端缓存功能
- netcat运行出错
- 推荐使用maven生成mybatis代码
- 19 个接私活平台汇总,你有技术就有钱
- 解决Vscode提示code安装似乎损坏
- css定位(二)---css中粘性定位(sticky)---C3新增属性
- 无刷直流电动机矢量控制(一)——无刷直流电机(BLDC)与永磁同步电机(PMSM)的相同点和区别
- 常见运放电路分析仿真汇总
- Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False.
- html内边距居中,HTML中详述外边距样式属性(margin)与内边距样式属性(padding)...
- idc具体是啥 idc服务器是什么意思?
- 全球500强员工是这么考试的!还有答案~
- 零 距 离 感 悟 金 山
热门文章
- matlab 模糊关系的合成、模糊向量笛卡尔积和内积运算代码(自编)
- range python float_自定义支持 float 的 range 函数
- 汽车整车动力学模型思维导图
- vc 单文档程序和多文档程序有什么区别?
- 【Launcher3系列】Android 11 Launcher3 图标替换、定制图标大一圈调整
- 博客网站添加友情链接-SEO搜索引擎优化
- ES 搜索3 (查找多个精确值)
- css常用选择器:相邻兄弟选择器(+)、子选择器(>)、兄弟选择器(~)、属性选择器等用法
- 研究了100多个创业失败案例后,这里有7个血色教训
- 通过NSBT投票参与Neutrino治理