我在Sun的JRE6中运行Tomcat6,并且每对夫妇都部署了OutOfMemoryException:PermGen.我已经完成了PermGen解决方案的谷歌搜索,并尝试了许多修复.没有工作.我读了很多关于Oracle的JRockit的好东西,以及它的PermGen分配大小如何(与Sun的128M相比)虽然它没有解决问题,但它允许我在PermGen异常之间重新部署100次而不是2现在的时间.
JRockit的问题是在生产中使用它需要购买价值数千美元的WebLogic.还有哪些其他(免费)选项可以更宽容PermGen扩展?以下JVM如何在这个领域做?
...其他?
更新:有人问我为什么认为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.
我会关闭这个问题,因为它已被回答,即."切换是无用的",而是问为什么我的Sun JVM会因为更大的PermGen设置而失败?