本文介绍了什么免费的JVM实现具有最好的PermGen处理?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Sun的JRE6中运行Tomcat6,并且每对夫妇都部署了OutOfMemoryException:PermGen。我已经完成了谷歌搜索PermGen解决方案,并尝试了很多修复。没有工作。我读了很多关于Oracle的JRockit的好东西,以及它的PermGen分配大小如何(与Sun的128M相比)虽然它没有解决问题,但它允许我在PermGen异常之间重新部署100次而不是2现在时间。

I'm running Tomcat6 in Sun's JRE6 and every couple deploys I get OutOfMemoryException: PermGen. I've done the Googling of PermGen solutions and tried many fixes. None work. I read a lot of good things about Oracle's JRockit and how its PermGen allocation can be gigs in size (compare to Sun's 128M) and while it doesn't solve the problem, it would allow me to redeploy 100 times between PermGen exceptions compared to 2 times now.

JRockit的问题是在生产中使用它需要购买价值数千美元的WebLogic。还有哪些其他(免费)选项可以更宽容PermGen扩展?以下JVM如何在这个领域做什么?

The problem with JRockit is to use it in production you need to buy WebLogic which costs thousands of dollars. What other (free) options exist that are more forgiving of PermGen expansion? How do the below JVMs do in this area?


  • IBM JVM

  • 打开JDK

  • Blackdown

  • Kaffe

  • IBM JVM
  • Open JDK
  • Blackdown
  • Kaffe

......其他人?

...others?

更新:有些人问我为什么认为PermGen max是128M。原因是因为每当我尝试将其提升到128M以上时,我的JVM都无法初始化:

Update: Some people have asked why I thought PermGen max was 128M. The reason is because any time I try to raise it above 128M my JVM fails to initialize:

[2009-06-18 01:39: 44] [info] VM初始化期间发生错误
[2009-06-18 01:39:44] [info]无法为对象堆保留足够的空间
[2009-06-18 01: 39:44] [395 javajni.c] [错误] CreateJavaVM失败

奇怪的是它未能尝试为对象保留空间 heap ,虽然我不确定它是堆而不是a堆。

It's strange that it fails trying to reserve space for the object heap, though I'm not sure it's "the" heap instead of "a" heap.

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

I boot the JVM with 1024MB initial and 1536MB max heap.

我会关闭这个问题,因为它已被回答,即。 切换是无用的,而是要求

I will close this question since it has been answered, ie. "switching is useless" and ask instead Why does my Sun JVM fail with larger PermGen settings?

推荐答案

我同意Michael Borgwardt的观点你可以增加PermGen的大小,我不同意它主要是由于内存泄漏。 PermGen空间被大量使用Reflection的应用程序侵占。所以基本上如果你有一个在Tomcat中运行的Spring / Hibernate应用程序,那么就要准备好让PermGen空间大量增加。

I agree with Michael Borgwardt in that you can increase the PermGen size, I disagree that it's primarily due to memory leaks. PermGen space gets eaten up aggressively by applications which implement heavy use of Reflection. So basically if you have a Spring/Hibernate application running in Tomcat, be prepared to bump that PermGen space up a lot.

这篇关于什么免费的JVM实现具有最好的PermGen处理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 02:17