簡體   English   中英

使用Java 64位啟動應用程序時收到PermGen空間錯誤

[英]PermGen space error received when starting an application with Java 64 bit

我有一個Eclipse(基於插件)應用程序,我嘗試從jnlp文件中以Java 64bit開始(我使用maven tycho來構建它)。 啟動應用程序后不久,它不再響應,有時甚至自動關閉。 如果使用Java 32位啟動應用程序,則該應用程序可以正常運行。

如果檢查日志文件,則會收到java.lang.OutOfMemoryError:PermGen空間異常。 我已經將MaxPermSize增加到756m,但仍然無法正常工作。 我可以看到,當應用程序被阻止時,CPU的使用率幾乎達到了100%。

如果您對我可以解決的問題有任何建議或解釋,請分享。

謝謝!

當您加載許多類時,燙發空間將被填充。

通過此常見問題解答

我如何確定永久性一代是否正在填補?

從1.4.2開始-XX:+ PrintGCDetails將打印有關在每個垃圾收集處收集的堆的所有部分的信息。 完整的收藏

[完整GC [使用期限:30437K-> 33739K(280576K),0.7050569秒] 106231K-> 33739K(362112K),[彼爾姆:2919K-> 2919K(16384K)],0.7052334秒]

此示例顯示永久代中的收集很少(從收集前使用的2919K到收集后使用的2919K),並且永久代的當前大小為16384K。

如果您遭受類加載器泄漏的困擾,那么您可能會對本文“如何修復”文章感興趣。

對我來說,解決方案是更改為Java 1.7。 我以前曾嘗試使用Java 1.6.0_26_x64和Java 1.6.0_29_x64並得到上述錯誤。

我現在已更改為Java 1.7.0_04_x64,它可以流暢運行,而絲毫不阻塞。

編輯:它也適用於Java 1.6.0_33。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM