我在Sun的JRE6中運行Tomcat6,每對情侶都部署OutOfMemoryException:PermGen。我已經完成了PermGen解決方案的Google搜索,並嘗試了許多修補程序。沒有工作。我讀了很多有關Oracle JRockit的好東西,以及它的PermGen分配如何在規模上演出(與Sun的128M相比),雖然它不能解決問題,但它允許我在PermGen異常之間重新部署100次,而不是2次現在的時間。什麼免費的JVM實現有最好的PermGen處理?
JRockit的問題是要在生產中使用它,您需要購買花費數千美元的WebLogic。還有哪些其他(免費)選項可以更加寬容PermGen擴展?下面的JVM如何在這方面做?
- IBM JVM
- 打開JDK
- 的Blackdown
- Kaffe上
...別人?
更新:有人問我爲什麼認爲PermGen max是128M。究其原因是因爲任何時候,我嘗試提高它上面128M我的JVM初始化失敗:
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM [2009-06-18 01:39:44] [info] Could not reserve enough space for object heap [2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
很奇怪的是,它沒有試圖保留空間爲對象堆,雖然我不知道它是「堆」而不是「堆」。
我以1024MB初始和1536MB最大堆啓動JVM。
我會關閉這個問題,因爲它已被回答,即。 「切換是無用的」,並要求改爲Why does my Sun JVM fail with larger PermGen settings?
我已經閱讀過那篇文章,但它並沒有提供任何實際上對某些不是一些愚蠢的小微示例有用的東西。 OP只需要習慣它,而不是浪費時間來解決它。 – GreenieMeanie 2009-06-17 19:58:14
要麼你沒有閱讀第二篇文章,或者你還沒有理解它。 – 2009-06-17 22:10:01
班級裝載機真的不那麼辛苦......但人們似乎被他們嚇倒了。 – CurtainDog 2010-04-15 01:01:57