機器配置:
P4 2.8 GHz 超線程,內存 1G
癥狀:
使用Eclipse時,點擊某個按鈕或圖標甚至正在輸入代碼時,整個程序突然失去響應,菜單欄變白,除了關閉按鈕,其他地方都沒反應,在任務管理器中發現javaw.exe占用CPU50%(相當于單CPU100%),內存占用200多M,且CPU和內存占用數值均停止不動,機器風扇開始轟鳴,再等半天還是這個樣子。點擊“關閉”按鈕出現“立即結束”對話框,只能很無奈地強行退出,有時一天碰到10多次,基本失去可用性。
尋找解決方案:
百度、google搜索,一般的解決方案是,調整啟動參數-Xms -Xmx,增大堆內存,然而,在上述機器上設置為-Xms512m -Xmx512m,仍然沒效,到失去響應的時候占用的內存依然是200多M。
看來這個問題需要自己解決了。用命令行方式啟動eclipse:
java -Xms512m -Xmx512m -jar startup.jar
到失去響應的時候,發現命令行里打印出java.lang.OutOfMemoryError: PermGen space,打開workspace/.metadata/.log文件,發現很多這樣的字符串,把這段話貼到搜索引擎上,發現很多這種問題,不過一般出現在Tomcat,Weblogic等Web應用程序上,沒有人報告過會出現在Eclipse上。解決方案是增加啟動參數:
-XX:MaxNewSize=256m -XX:MaxPermSize=256m
于是在eclipse.ini里把啟動參數改為:
-Xms512m?-Xmx512m?-XX:MaxNewSize=256m?-XX:MaxPermSize=256m啟動Eclipse,用了幾天,都沒再出現失去響應的癥狀。
關于MaxPermSize的文章:
CFMX JVM Tuning - The difference between MaxPermSize and Heap Size