10得票2回答
Java 7无法收集Java 5可收集的永久代

有人知道为什么Java 7无法收集应用程序的永久代,导致出现java.lang.OutOfMemoryError: PermGen错误,而Java 5可以收集永久代并使应用程序运行良好吗? 应用程序在循环中进行Jython表达式的评估,一次迭代大约需要5秒钟。循环主体如下:PythonInt...

9得票1回答
永久代(Perm Gen)什么时候被回收?

我在一款使用CMS垃圾回收器和内存栏的Tomcat应用程序上工作。当我重新加载webapps时,有时候会遇到这样一种情况:老年代已经充满足以触发GC,但是死亡的类加载器却没有被回收。 我了解到,类被分配到永久代,并猜测它们因此被老年代集合所忽略。为了测试这个理论,我编写了以下测试类。 pa...

9得票3回答
JUnit 4在Eclipse和Maven2中运行测试时,PermGen大小溢出

我正在使用JUnit、PowerMock和Mockito进行单元测试。我有很多测试类,用@RunWith(PowerMockRunner.class)和@PrepareForTest(SomeClassesNames)注释来模拟最终类和200个以上的测试用例。 最近,在Eclipse或Mav...

8得票5回答
永久代是堆的一部分还是在JVM中占据不同的空间?

我看到了很多关于这个问题的评论 - 有些人说是,有些人说不是,而且许多答案都含糊不清。请问有人能用简单易懂的话来描述它在哪里吗?在一篇帖子中,我甚至看到有人说它与类内存共享同一内存位置,而类是由类加载器加载的 - 这是真的吗?

8得票3回答
大的Permgen大小对性能的影响

我们在Tomcat 6上运行一个Liferay门户。每个Portlet都是一个独立的Web应用程序,因此它包含Portlet本身所需的所有库。我们目前有30多个Portlets。由此产生的结果是,随着我们部署每个Portlet,Tomcat的PermGen会增加。 现在我们有两条路可以走。 ...

8得票2回答
PermGen,但Java VisualVM显示“未找到GC根”

我有一个非常简单的“Hello world”类型的Web应用程序(使用Spring 3.2.1和Hibernate 4.1.9),在停止/重启Web应用程序Tomcat 7.0.26时需要注意以下几点: The following web applications were stopped ...

8得票4回答
Tomcat 7出现CreateJavaVM Failed错误

我在Windows R2服务器上安装了Apache Tomcat 7.0.5服务器,并部署了一个WebApp(Java JSF)。一开始一切运行良好,但突然间就停止了,无法再次启动。当我尝试运行它时,会提示“Error 1067:进程意外终止”,在日志中我得到以下文件: tomcat7-st...

8得票1回答
保持MaxPermSize较小是否有任何好处?

假设使用的是64位JVM,将MaxPermSize保持较小的值是否有明显的好处? 这个问题是在Java EE应用程序频繁重新部署、存在类加载器泄漏的情况下提出的。作为中期解决方案,只需将MaxPermSize增加到荒谬的值似乎非常合理,前提是不会耗尽磁盘交换空间。 由于未部署的应用程序代码...

8得票3回答
内部类是否轻量级?

内部类比普通类更轻量级吗?或者说最终java编译内部类和普通类一样吗? 我知道在java中,类本身并不都是非常轻量级的,并且它们占用了permgen内存的一部分,所以我想知道是否最好使用类似闭包的函数作为内部类,还是标准类也可以胜任?

8得票2回答
使用PermGen空间还是自己编写intern方法?

我正在编写一个编解码器,用于处理使用专有线协议发送的TCP消息。在解码过程中,我创建了许多字符串、BigDecimal和日期对象。由于客户端-服务器访问模式的原因,客户端通常会发出请求,然后解码数千个响应消息,这导致大量重复的字符串、BigDecimal等。 因此,我创建了一个InternP...