matlab调用Java程序时出现
java.lang.OutOfMemoryError: GC overhead limit exceeded
JDK1.6.0_37和JDK_1.7.0_60版本,这2个版本中JVM默认启动的时候-XX:+UseGCOverheadLimit,即启用了该特性。这其实是JVM的一种推断,如果垃圾回收耗费了98%的时间,但是回收的内存还不到2%,那么JVM会认为即将发生OOM,让程序提前结束。当然我们可以使用-XX:-UseGCOverheadLimit,关掉这个特性。
解释: JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。
一般是因为堆太小。导致异常的原因:没有足够的内存。
解决方案1如下:
- 可以添加JVM的启动参数来限制使用内存
:-XX:-UseGCOverheadLimit
在linux服务器中,重启tomcat时在其.sh文件中某行加入
-XX