小编典典

哪种免费的JVM实现具有最佳的PermGen处理能力?

java

我在Sun的JRE6中运行Tomcat6,每部署两个,我都会收到OutOfMemoryException:PermGen。我已经完成了对PermGen解决方案的搜索,并尝试了许多修复程序。没有工作。我读了很多有关Oracle
JRockit的好东西,以及它的PermGen分配大小(与Sun的128M相比),虽然它不能解决问题,但我可以在PermGen异常之间重新部署100次,相比之下2次现在。

JRockit的问题是在生产中使用它,您需要购买花费数千美元的WebLogic。存在哪些其他(免费)选项更能容忍PermGen的扩展?下面的JVM在该区域中如何工作?

  • IBM JVM
  • 打开JDK
  • 停电
  • 卡菲

…其他?

更新: 有人问为什么我认为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

奇怪的是,它无法为对象 保留空间,尽管我不确定它是“ the”堆而不是“ a”堆。

我以初始1024MB和最大1536MB的堆启动JVM。


阅读 166

收藏
2020-11-16

共1个答案

小编典典

我同意Michael
Borgwardt的观点,即您可以增加PermGen的大小,但我不同意这主要是由于内存泄漏。大量使用Reflection的应用程序会极大地侵蚀PermGen空间。因此,基本上,如果您有一个在Tomcat中运行的Spring
/ Hibernate应用程序,请准备好增加PermGen的空间。

2020-11-16