在使用Eclipse的Build Project功能時,提示如下錯誤:
An internal error occurred during: 「Build Project」. GC overhead limit exceeded
如圖:
搜索的一下,是屬於java.lang.OutOfMemoryError。
OOM你們都知道,就是JVM內存溢出了,那GC overhead limit exceed呢?java
GC overhead limt exceed檢查是Hotspot VM 1.6定義的一個策略,經過統計GC時間來預測是否要OOM了,提早拋出異常,防止OOM發生。Sun 官方對此的定義是:「並行/併發回收器在GC回收時間過長時會拋出OutOfMemroyError。過長的定義是,超過98%的時間用來作GC而且回收了不到2%的堆內存。用來避免內存太小形成應用不能正常工做。「markdown
聽起來沒啥用…預測OOM有啥用?起初開來這玩意只能用來Catch住釋放內存資源,避免應用掛掉。後來發現通常狀況下這個策略不能拯救你的應用,可是能夠在應用掛掉以前作最後的掙扎,好比數據保存或者保存現場(Heap Dump)。併發
並且有些時候這個策略還會帶來問題,好比加載某個大的內存數據時頻繁OOM。eclipse
**用於了一兩年了,今天忽然遇到這個問題,也許是之前沒留意。
其實若是不是很頻繁的出現,也不須要留意它,直接點OK就行了。**
以後會彈出提示以下: ui
若是擔憂還有沒保存的修改,就點No,檢查完畢後重啓一下Eclipse。.net
解決方法:
緣由是Eclipse默認配置內存過小須要更改Eclipse安裝文件夾下的eclipse.ini文件。blog
Eclipse.ini默認文件以下:圖片
修改以下:ip
-Xms512m -Xmx1024m內存
第一個是最小的初始化內存,第二個是最大的佔有內存
還能夠加上 -XX:MaxPermSize=1024m這個意思是在編譯文件時一直佔有最大內存,重啓Eclipse