草庐IT

java - 生产服务器上的 Tomcat、PermGen 和重新部署

看起来像MemoryError:PermGenspacejava.lang.OutOfMemoryError:PermGenspace是一个常见的问题。您可以增加perm空间的大小,但在100或200次重新部署后它将被填满。跟踪ClassLoader内存泄漏几乎是不可能的。您在生产服务器上使用Tomcat(或另一个简单的servlet容器-Jetty?)的方法是什么?每次部署解决方案后是否重新启动服务器?您是否将一个Tomcat用于多个应用程序?也许我应该在不同的端口(或嵌入式Jetty)上使用多个Jetty服务器,并且每次都取消部署/重新启动/部署? 最佳

java - 什么是克拉斯和克拉斯克拉斯

JVM热点实现中的Klass&KlassKlass是什么?据我了解PresentingthePermGeneration,Klass是Java类的内部表示(比如A),它将包含有关类结构的基本信息,包括字节码。它将作为对象本身存储。A类的每个对象都有一个指针,指向PermGen中存在的内部表示KlassKlassKlass是Klass类本身的内部表示。为什么需要KlassKlass?它存储了哪些额外信息?另外,一个KlassKlass的Klass指针指向自己,我也没看懂。 最佳答案 PermanentGenerationa.k.ape

java - 什么是克拉斯和克拉斯克拉斯

JVM热点实现中的Klass&KlassKlass是什么?据我了解PresentingthePermGeneration,Klass是Java类的内部表示(比如A),它将包含有关类结构的基本信息,包括字节码。它将作为对象本身存储。A类的每个对象都有一个指针,指向PermGen中存在的内部表示KlassKlassKlass是Klass类本身的内部表示。为什么需要KlassKlass?它存储了哪些额外信息?另外,一个KlassKlass的Klass指针指向自己,我也没看懂。 最佳答案 PermanentGenerationa.k.ape

java - 现实生活中,在 Java 中使用 String.intern() 的实际示例?

我见过许多描述Stringintern()'ing工作原理的原始示例,但我还没有看到可以从中受益的真实用例。我能想到的唯一情况是拥有一个接收大量请求的Web服务,由于严格的模式,每个请求在性质上都非常相似。在这种情况下,通过对请求字段名称进行intern()处理,可以显着减少内存消耗。谁能提供一个在生产环境中使用intern()并取得巨大成功的例子?也许是流行的开源产品中的一个例子?编辑:我指的是手动实习,而不是字符串文字等的保证实习。 最佳答案 如果您的N字符串只能采用K不同的值,其中N远远超过K,则实习会非常有益。现在,您不再将

java - 现实生活中,在 Java 中使用 String.intern() 的实际示例?

我见过许多描述Stringintern()'ing工作原理的原始示例,但我还没有看到可以从中受益的真实用例。我能想到的唯一情况是拥有一个接收大量请求的Web服务,由于严格的模式,每个请求在性质上都非常相似。在这种情况下,通过对请求字段名称进行intern()处理,可以显着减少内存消耗。谁能提供一个在生产环境中使用intern()并取得巨大成功的例子?也许是流行的开源产品中的一个例子?编辑:我指的是手动实习,而不是字符串文字等的保证实习。 最佳答案 如果您的N字符串只能采用K不同的值,其中N远远超过K,则实习会非常有益。现在,您不再将

java - 如何以编程方式找出我的 PermGen 空间使用情况?

我正在尝试诊断在Sun的HotspotJVM上运行时出现的java.lang.OutOfMemoryError:PermGenSpace错误,并且想知道我的程序在各个点使用了多少PermGen空间。有没有办法以编程方式找出这些信息? 最佳答案 你可以这样使用:Iteratoriter=ManagementFactory.getMemoryPoolMXBeans().iterator();while(iter.hasNext()){MemoryPoolMXBeanitem=iter.next();Stringname=item.get

java - 如何以编程方式找出我的 PermGen 空间使用情况?

我正在尝试诊断在Sun的HotspotJVM上运行时出现的java.lang.OutOfMemoryError:PermGenSpace错误,并且想知道我的程序在各个点使用了多少PermGen空间。有没有办法以编程方式找出这些信息? 最佳答案 你可以这样使用:Iteratoriter=ManagementFactory.getMemoryPoolMXBeans().iterator();while(iter.hasNext()){MemoryPoolMXBeanitem=iter.next();Stringname=item.get

java - 如何分析 PermGen 的内容?

我想获取PermGen的转储,看看它为什么会被填充。有没有办法分析这个?我已经知道log4j、tomcatwebapp重新加载等常见问题,但我的应用程序中也有一些自定义代理生成代码,只是想深入了解一下。这有可能吗? 最佳答案 PermGen通常由字符串字面量池和加载的类组成。为了回答您的部分问题,即字符串文字池,我编写了一个实用程序来打印正在运行的JVM的字符串文字池。可在此处获得:https://github.com/puneetlakhina/javautils/blob/master/src/com/blogspot/sahy

java - 如何分析 PermGen 的内容?

我想获取PermGen的转储,看看它为什么会被填充。有没有办法分析这个?我已经知道log4j、tomcatwebapp重新加载等常见问题,但我的应用程序中也有一些自定义代理生成代码,只是想深入了解一下。这有可能吗? 最佳答案 PermGen通常由字符串字面量池和加载的类组成。为了回答您的部分问题,即字符串文字池,我编写了一个实用程序来打印正在运行的JVM的字符串文字池。可在此处获得:https://github.com/puneetlakhina/javautils/blob/master/src/com/blogspot/sahy

java - PermGen 空间错误 - Glassfish 服务器

我正在使用Hibernate和glassfishServer运行JavaWeb应用程序。我得到了java.lang.OutOfMemoryError:PermGenspace多次部署后出现异常。我在环境变量中尝试了-XX:MaxPermSize=128M,但它不起作用。 最佳答案 要解决这个问题(在基于linux的操作系统中),请执行以下操作1)增加内存(这样这个问题就不会经常出现了)通过在中配置“domain.xml”/glassfish/domain/domain1/config搜索-XX:MaxPermSize=setitto