我在Windows2008Server上将Tomcat7作为服务运行由于PermGen空间,我有时会收到“OutOfMemory异常”。我在另一个线程中读到,当将Tomcat作为服务运行时,使用setenv.bat不起作用(因为没有使用catalina.bat,希望这是正确的)。我通常使用“配置Tomcat”GUI来设置Java的内存池(最小值、最大值),但据我所知,没有针对Perm空间的特定选项。我能否以某种方式在GUI的Java选项字段中设置该值?或者我该怎么做?问候亚历克斯 最佳答案 是的,例如,您可以在jvm选项字段中进行设
我在使用Tomcat时遇到了一些问题。我正在部署一个Grails应用程序,当我添加新功能时,我在堆栈跟踪文件中遇到了这个(不幸的是众所周知的)错误:Causedby:java.lang.OutOfMemoryError:PermGenspace2014-01-1319:28:35,753[http-bio-8080-exec-26]ERRORStackTrace-FullStackTrace:org.codehaus.groovy.runtime.InvokerInvocationException:java.lang.OutOfMemoryError:PermGenspaceatgs
如何在windows中为jvm添加PermGen空间?我找到了很多关于它的链接?但我不明白我必须在哪里点击并写入新值 最佳答案 它更像是一种Java运行时(JVM)设置,而不是Windows设置。您可以通过将以下参数(仅示例)添加到您的Java命令行来配置它。-XX:PermSize=256m-XX:MaxPermSize=512m例如,如果您正在执行java-jarsomeapp.jar,您可能必须执行java-jarsomeapp.jar-XX:PermSize=256m-XX:MaxPermSize=512m。通常的做法是在名
我们正在运行grails,我们注意到需要多次完整的垃圾回收来清除permgen空间。2013-06-06T16:11:27.016+0000:32582.145:[FullGC32582.145:[CMS2013-06-06T16:11:45.404+0000:32600.532:[CMS-concurrent-mark:21.403/86.063secs][Times:user=48.44sys=0.63,real=86.07secs](concurrentmodefailure):7585874K->7290466K(10145024K),57.9230770secs]786609
关于Java对象的大小有很多问答,这很容易理解。但是我想知道PermGen空间中Java类的大小。我对此感到疑惑的原因是因为我正在编写一个代码生成器,生成很多类。本质上,我为数据库中的每个表/View生成两个类。现在我也想建模外键关系。与其维护一个复杂的、可序列化的对象结构(考虑一个表有一个唯一的键被属于其他表有其他外键等的几个外键引用),我更愿意为每个UNIQUE生成一个类KEY和每个FOREIGNKEY一类。这是我的问题:我将为此创建多少类加载器和PermGen空间的开销?public类、static类和private成员类之间有区别吗?您是否看到在源代码中生成外键信息的更好方法?
经过几天的调试,我成功地在Tomcat6.0.32上重新部署了一个大中型Web应用程序,没有任何PermGen。泄漏。我看到了PermGen填满后丢弃,类加载器被垃圾回收。大喜过望后,我尝试在我们的开发环境中无泄漏地重新部署应用程序,该环境由Maven和Jetty插件组成。不幸的是,我似乎遇到了服务器限制,如下面的屏幕截图所示Yourkitsnapshothttp://img811.imageshack.us/img811/7320/jettyclassloaderbeanelr.pngJetty请求线程具有对BeanElResolver的强引用这反过来又强烈引用了我的网络应用程序中的
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtoanalyzePermGencontents?我想知道占用PermGen空间的是什么-stringintern()还是classes?是否有任何工具可以帮助进行此分析?
我有一个tomcat6.0.20,4月1.2,jdk1.6.0_15和mysql5.1.38在一个4GB内存的rhel盒子上运行。上面有一个简单的jsp/servlet应用程序,有5个用户,一个struts1.2.0.9有64个用户,一个struts2.0应用程序有35个用户。struts2.0的用户每秒钟都会创建一个条目,一天大约有900个条目。我还在最后两个应用程序中使用toplink进行持久化。我已在代码中将所有非引用对象声明为null,并已从struts2站点和tomcat站点为配置文件应用生产值。在mysql中应用线程缓存,减少wait_timeout和interactive
我们正在用Scala编写一个包含很多类的大型GUI应用程序,我们不得不增加PermGen空间才能加载所有类。该应用程序本身会显示一系列基于屏幕的Activity,每个Activity都会加载自己的大量类。在任何时间点都只会加载/显示一个Activity。在完成一些Activity后,我们在PermGen空间中遇到了OutOfMemoryError。我知道PermGen空间是garbagecollectedjustliketherestoftheheap,但我很想知道我是否可以减少所需的PermGen空间,例如每个Activity一个ClassLoader以允许类卸载。所以:我知道系统类
我已经阅读了很多关于创建String时内存分配的相互矛盾的文章。有些文章说new运算符在堆中创建一个字符串,而字符串字面量在字符串池[堆]中创建,而有些文章则说new运算符在堆中创建一个对象,在字符串池中创建另一个对象。为了对此进行分析,我编写了以下程序,打印了Stringchar数组和String对象的哈希码:importjava.lang.reflect.Field;publicclassStringAnalysis{privateintshowInternalCharArrayHashCode(Strings)throwsSecurityException,NoSuchField