eclipse報錯GC overhead limit exceed,卡頓


在使用Eclipse的Build Project功能時,提示以下錯誤:
An internal error occurred during: “Build Project”. GC overhead limit exceeded
如圖:
這里寫圖片描述
搜索的一下,是屬於java.lang.OutOfMemoryError。
OOM大家都知道,就是JVM內存溢出了,那GC overhead limit exceed呢?

GC overhead limt exceed檢查是Hotspot VM 1.6定義的一個策略,通過統計GC時間來預測是否要OOM了,提前拋出異常,防止OOM發生。Sun 官方對此的定義是:“並行/並發回收器在GC回收時間過長時會拋出OutOfMemroyError。過長的定義是,超過98%的時間用來做GC並且回收 了不到2%的堆內存。用來避免內存過小造成應用不能正常工作。“

聽起來沒啥用…預測OOM有啥用?起初開來這玩意只能用來Catch住釋放內存資源,避免應用掛掉。后來發現一般情況下這個策略不能拯救你的應用,但是可以在應用掛掉之前做最后的掙扎,比如數據保存或者保存現場(Heap Dump)。

而且有些時候這個策略還會帶來問題,比如加載某個大的內存數據時頻繁OOM。

**用於了一兩年了,今天突然遇到這個問題,也許是以前沒留意。
其實如果不是很頻繁的出現,也不需要留意它,直接點OK就好了。**
之后會彈出提示如下:
這里寫圖片描述

如果擔心還有沒保存的修改,就點No,檢查完畢后重啟一下Eclipse。

解決方法:
原因是Eclipse默認配置內存太小需要更改Eclipse安裝文件夾下的eclipse.ini文件。

Eclipse.ini默認文件如下:

修改如下:

-Xms512m -Xmx1024m

第一個是最小的初始化內存,第二個是最大的占有內存

還可以加上 -XX:MaxPermSize=1024m這個意思是在編譯文件時一直占有最大內存,重啟Eclipse


免責聲明!

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



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