matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded
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如下:
在linux服務器中,重啟tomcat時在其.sh文件中某行加入
-XX:-UseGCOverheadLimit參數即可
若是matlab調用的Java程序的話,可
在 $MATLAB\bin\$ARCH 路徑下新建java.opts文件.
MATLAB是根路徑,例如D:\CMWang\MATLABR2014bARCH是系統架構.例如win64,則在D:\CMWang\MATLABR2014b\bin\win64下新建java.opts文件.
用記事本打開java.opts文件,輸入:
詳細解決方案見
matlab內存溢出的解決方案
解決方案2如下:
調節matlab對Java虛擬機的內存分配。
matlab java.lang.OutOfMemoryError
其他的出現的異常情況如下
java.lang.StackOverflowError:(很少)
java.lang.OutOfMemoryError:heap space(比較常見)
java.lang.OutOfMemoryError: PermGen space (經常出現)
java.lang.OutOfMemoryError: GC overhead limit exceeded(某項操作使用大量內存時發生)
解決方案見參考文獻。
參考主頁
http://m.blog.csdn.net/article/details?id=7043725
http://blog.csdn.net/aitangyong/article/details/41180211
http://java-boy.iteye.com/blog/463454
總結
以上是生活随笔為你收集整理的matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL 存储过程 经常使用语法
- 下一篇: Steam Deck底座首度亮相