2013-02-11 16 views
1

我開發在Windows 7上使用Eclipse/Glassfish的一個web應用程序,我看到這個錯誤,每天至少幾次部署應用程序的新版本時:的Eclipse/Glassfish的運行內存

SEVERE: Exception while preparing the app : PermGen space 
SEVERE: java.lang.OutOfMemoryError: PermGen space 

當我看到它,我不得不關閉Eclipse,使用Windows任務管理器停止一個Java程序(我懷疑是Glassfish的),並重新啓動Eclipse。這是一個令人討厭的,不受歡迎的中斷。

有什麼我可以修復/配置將使這個錯誤消失,或至少減少其頻率是多少?或者這是我只能忍受的內存泄漏?

+0

我想我已經看到了「熱」春/休眠應用程序的重新部署內存泄漏隨着時間的推移。如果你正在使用這兩個,我不確定是否可以用它做任何事情。這就是說,我承認這是基於前一段回憶的模糊猜測。 – millimoose 2013-02-11 18:18:15

+1

在運行Eclipse的目錄中,您有一個文件eclipse.ini它是否包含MaxPermSize的任何設置?如果沒有,你可以嘗試添加:--launcher.XXMaxPermSize 512M ...或者一些其他的號碼,看是否有其他東西比默認爲你工作好。請參閱此鏈接:http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F – 2013-02-11 19:01:44

+0

@Darius:謝謝你,我給一個嘗試。出於好奇,你是否知道討論應該考慮的最大設置的任何資源?我有一臺相當不錯的機器,Eclipse/Glassfish可能是任何時候運行的最重要的應用程序;讓他們生豬資源我沒有問題。 – BlairHippo 2013-02-11 19:19:24

回答

0

這是Sun/Oracle的JVM內存泄漏< = 7,其使用JPA時經常發生。升級到Oracle's JVM 8 should solve this

如果您綁定到JVM 7或更低版​​本,則可以在Eclipse中將以下VM參數添加到Glassfish的啓動配置中,以增加內存限制(在此示例中爲1024 MB),這使得OOM更不規則:

-XX:MaxPermSize=1024M