jvm内存溢出实例一
2017-09-05 10:34
435 查看
一.内存溢出实例
应用日志报:java.lang.OutOfMemoryError: Java heap space
这个现象就是堆溢出,具体原因需要看dump内存。
如果之前配置了:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath
则会在相应路径下会生成dump文件
生成的文件以:hprf结尾。
用eclipse mat分析:
可以看到main线程中,有个map占用了98.75%的内存。
可以继续看 [see stacktrace],显示如下:
Thread Stack
main
at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48)
at java.lang.Integer.valueOf(I)Ljava/lang/Integer; (Integer.java:642)
at jvm.OverHeapTest.main([Ljava/lang/String;)V (OverHeapTest.java:13)
找到OverHeapTest对应13行代码:
public class OverHeapTest {
public static void main(String[] args) {
Map<Object,String> map = new HashMap<Object, String>();
Random r = new Random();
while (true) {
map.put(r.nextInt(), "value");
}
}
}
可以看到有个while循环不断往map塞元素。
应用日志报:java.lang.OutOfMemoryError: Java heap space
这个现象就是堆溢出,具体原因需要看dump内存。
如果之前配置了:
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath
则会在相应路径下会生成dump文件
生成的文件以:hprf结尾。
用eclipse mat分析:
可以看到main线程中,有个map占用了98.75%的内存。
可以继续看 [see stacktrace],显示如下:
Thread Stack
main
at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:48)
at java.lang.Integer.valueOf(I)Ljava/lang/Integer; (Integer.java:642)
at jvm.OverHeapTest.main([Ljava/lang/String;)V (OverHeapTest.java:13)
找到OverHeapTest对应13行代码:
public class OverHeapTest {
public static void main(String[] args) {
Map<Object,String> map = new HashMap<Object, String>();
Random r = new Random();
while (true) {
map.put(r.nextInt(), "value");
}
}
}
可以看到有个while循环不断往map塞元素。
相关文章推荐
- jvm实例,tomcat容器,spring容器,在内存中的关系
- JVM内核学习 --内存相关,内存结构, GC,ClassLoader,内存溢出
- tomcat中 JVM 内存溢出及合理配置
- Tomcat中JVM内存溢出及合理配置
- PHP对象相互引用的内存溢出实例分析
- 【Java面试整理之JVM】深入理解JVM结构、类加载机制、垃圾回收GC原理、JVM内存分配策略、JVM内存泄露和溢出
- Jvm内存溢出
- Tomcat工作原理 、JVM内存溢出及合理配置、配置文件详解
- JVM内存溢出深度分析
- Tomcat中JVM内存溢出及合理配置
- JVM 深入笔记(2)内存溢出场景模拟
- 分析Jvm的heap溢出的实例
- JBOSS4.2 JVM配置-主要解决内存溢出
- 关于一个CS项目,jvm内存溢出问题的解决方案
- jvm 内存溢出 在 a4df myeclipse中加大tomcat的jvm内存 java.lang.OutOfMemoryError: PermGen space
- Tomcat中JVM内存溢出及合理配置
- Java JVM:内存溢出问题
- JVM:Java内存区域与内存溢出
- JceSecurity/BouncyCastleProvider导致JVM内存溢出、CPU过高问题排查
- Tomcat中JVM内存溢出及合理配置