Exception in thread "main" java.lang.OutOfMemoryError:GC overhead limit exceeded
来源:互联网 发布:睿威仕监控软件下载 编辑:程序博客网 时间:2024/05/21 14:00
大家解决这个问题前提是对jvm有一定的了解和认识。面临的问题:Exception in thread "main" java.lang.OutOfMemoryError:GC overhead limit exceeded;也就是超出了GC开销上限。错误提示信息如下图:
如何输出jvm的内存使用状况,添加参数-XX:+PrintGC -XX:+PrintGCDetails进行设置,就会把一些内存使用状况输出,具体参数的设置可以阅读下面的链接(vm参数设置不懂的可以好好看看):https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html 。本文重点是解决内存溢出问题,接着下面继续看。
通过观察输出信息,可以看到eden和object区占用比较大的比例,接近100%,主要是通过调节这两个区的内存大小解决问题。
解决方法:
1、首先设置eclipse的堆内存大小,能够使object对象加载进去,从原来的1G增加到4G,增加这么大的目的是:同时增加young代的空间大小!(获取可以设置到2G、3G在这里没有具体的实验)
2、配置参数主要有(这个可以参看上面链接地址讲解):
-XX:NewSize=2048:young区大小
-XX:MaxNewSize=2048:young区最大大小
-XX:MaxPermSize=1024:永久区大小
-XX:SurvivorRatio=3:eden和from之间的比例,通过这个参数增加eden区的大小
-XX:MaxTenuringThreshold=10:GC回收的次数阈值(垃圾回收年龄)
-XX:ParallelGCThreads=4:xianchengshu
-XX:CMSFullGCsBeforeCompaction=10:多少次后进行内存压缩
-XX:+PrintGC:打印
-XX:+PrintGCDetails:打印
3、将相关参数进行设置好后,run
4、通过上面的参数调整,得到如下图的运行结果:可以看到eden的百分比降到29%,from区的利用率达到38%,object利用率降低到97%
关于内存溢出的情况各种各样,一般都是通过控制台打印内存使用情况,进行针对性的调整!
这是本人在学习中遇到的问题,大家共同学习参考,如有错误请指正,谢谢!
- Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
- Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
- Hadoop Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
- Exception in thread "main" java.lang.OutOfMemoryError:GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError: GC overhead limit exceeded
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- java.lang.OutOfMemoryError:GC overhead limit exceeded
- 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) A
- cocoapods 倒入第三方
- angular h5项目微信页面分享不了问题
- Gson解析【】数组在外的解析方法
- 【OpenGL】 Android平台美颜相机、实时滤镜、人脸技术探秘
- Exception in thread "main" java.lang.OutOfMemoryError:GC overhead limit exceeded
- Mutex::AutoLock介绍
- 对这几年博士生活的反思
- Konektatbed Electra 6.20 1CD
- 【ubuntu】刚刚安装好ubuntu虚拟机该做的事
- CAN中文版汽车诊断协12
- js,jQuery时间与时间戳相互转换
- sparse.csr_matrix矩阵的压缩存储
- CRF中的f(x,y)是什么