java.lang.OutOfMemoryError:GC overhead limit exceeded解決方法


異常如下:Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded 

 

一、解釋:JDK6新增錯誤類型。

    當GC為釋放很小空間占用大量時間時會拋出此異常

    即(Sun 官方對此的定義:超過98%的時間用來做GC並且回收了不到2%的堆內存時會拋出此異常)。

    一般是因為堆太小,導致異常的原因:沒有足夠的內存。 

 

二、解決方案:  

    1、查看系統是否有使用大內存的代碼或死循環。

    2、可以添加JVM的啟動參數來限制使用內存:-XX:-UseGCOverheadLimit

       方法如下:linux環境下在tomcat的catalina.sh文件中 在cygwin=false這一行上面加入 

     JAVA_OPTS="-Xms512m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM