当前位置: 首页 > 面试题库 >

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

梁丘远航
2023-03-14
问题内容

我在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。


问题答案:

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



 类似资料:
  • 用惰性初始化、私有setter和使用昂贵的方法更改值的能力来实现变量的最佳方法是什么? 用法示例:

  • 我知道一个消费者组中活动消费者的最大数量是一个主题的分区数。 对于处理速度较慢的消费者,最佳做法是什么?如何实现更多的并行性? 例如:一个主题有6个分区,生产者每秒生成数千条消息。所以我在这个群体中最多有6个消费者。考虑到处理这些消息很复杂,而且消费者比生产者慢得多。结果是,消费者总是落后于最后一个补偿,而滞后正在增加。 在传统的MQ系统中,我们只需添加越来越多的使用者以保持最新。 如何使用Kaf

  • 我已经完成了iOS应用程序的开发,想了解我的应用程序在移动端的性能。 是否有一种工具可以衡量前端应用程序以及服务API的性能。

  • 本文向大家介绍5款最佳的免费Linux杀毒软件,包括了5款最佳的免费Linux杀毒软件的使用技巧和注意事项,需要的朋友参考一下 Linux的安全性毋庸置疑。很多Linux新手都这样认为,但是Linux同样也有可能遭受病毒的侵袭。 首先,Linux比其它操作系统更稳定更安全。理论上Linux是有可能被病毒侵害的。但实际上 Linux机器几乎不可能遭受病毒的攻击。这里的问题是为什么要为Linux准备防

  • 问题内容: 该图非常大,但无向。边缘未加权。 在我的实现中,我必须找到最大度数的顶点,并在顶点和边上都删除。 链表?数组列表?地图? 哪种对我的实施更好? 问题答案: 我的建议是将顶点存储在优先级队列中。这样,您可以非常快速地访问最高度的顶点。至于如何实现顶点,我将每个相邻的顶点存储在某种形式的数据结构中,例如HashSet或TreeSet,以便能够有效地删除内容。我不会明确地表示边缘,这不是必需

  • 问题内容: 如果我的应用程序崩溃了,它会挂起几秒钟,然后Android告诉我该应用程序崩溃了,需要关闭。所以我当时想用通用的方式捕获应用程序中的所有异常: 并做一个新的解释,说明应用程序立即崩溃(并且还使用户有机会发送包含错误详细信息的邮件),而不是由于Android而造成了延迟。是否有更好的方法来实现这一目标? 更新: 我使用的是启用了ART的Nexus 5,但我没有注意到我以前遇到的崩溃(我最