java.lang.OutOfMemoryError: PermGen space Exception
java.lang.OutOfMemoryError: PermGen space Exception
我收到此 java.lang.OutOfMemoryError: PermGen space
异常。我正在使用 Eclipse Juno 和 Tomcat 7.0。此异常在控制台中每 10-15 分钟至少发生一次。如何解决?
Feb 25, 2016 10:23:23 AM org.springframework.beans.factory.support.DefaultListableBeanFactory destroyBean
SEVERE: Destroy method on bean with name 'mvcUrlPathHelper' threw an exception
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessBeforeDestruction(PersistenceAnnotationBeanPostProcessor.java:375)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:242)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:925)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:932)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:997)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:547)
Feb 25, 2016 10:23:24 AM org.springframework.beans.factory.support.DefaultListableBeanFactory destroyBean
SEVERE: Destroy method on bean with name 'mvcPathMatcher' threw an exception
java.lang.OutOfMemoryError: PermGen space
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
当你得到java.lang.OutOfMemoryError: PermGen space errors
时,你需要增加Eclipse.To可用的永久代space 这样做请修改你的Eclipse eclipse.ini
文件。
设置如下
-XX:MaxPermSize=1024m
更多帮助您可以参考下面link,
java.lang.OutOfMemoryError: PermGen space
为更多 PermGenSpace 配置 Java 很容易,但我建议改为迁移到 Java 1.8 运行时。安装 Java 8 SDK 并添加两行
-vm
D:/jdk8/jre/bin/javaw.exe
到eclipse.ini。此问题已从 Java 1.8 开始修复,不再需要任何修改。
与其在 eclipse.ini 中进行更改,不如安装 Java 8。
我安装了 Java 8,现在我没有收到 java.lang.OutOfMemoryError: PermGen space
异常。
什么是java.lang.OutOfMemoryError:PermGen space?
答:
java.lang.OutOfMemoryError: PermGen space
信息表示Permanent Generation在内存中的区域已经耗尽
任何 Java 应用程序都可以使用有限的内存。您的特定应用程序可以使用的确切内存量在应用程序启动期间指定。
Java内存被分成不同的区域,如下图所示:
这个 PermGen 错误的解决方案是什么 space?
答:
对于堆,
export JVM_ARGS="-Xms1024m -Xmx1024m"
对于 Permgen,
JVM_ARGS="-XX:PermSize=512M -XX:MaxPermSize=512m"
您还可以提供额外的部分
-XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC XX:+CMSClassUnloadingEnabled
您还可以提供更多附加部分:)
-XX:PermSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=128 -XX:TargetSurvivorRatio=90 -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:+UseTLAB -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled
Metaspace: 新记忆space诞生
JDK 8 HotSpot JVM
现在使用本机内存来表示 class 元数据,称为 Metaspace
;类似于 Oracle JRockit
和 IBM JVM's
.
好消息是,这意味着不再有 java.lang.OutOfMemoryError: PermGen space
问题,您不再需要调整和监视此内存 space。
相关Link:
- https://plumbr.eu/outofmemoryerror/java-heap-space
- https://plumbr.eu/outofmemoryerror/permgen-space
- http://stas-blogspot.blogspot.in/2011/07/most-complete-list-of-xx-options-for.html#UseConcMarkSweepGC
- https://www.javacodegeeks.com/2013/12/decoding-java-lang-outofmemoryerror-permgen-space.html
- http://www.javavillage.in/reasons-outofmemory-permespace.php
- Dealing with "java.lang.OutOfMemoryError: PermGen space" error
Java 8 Links
我收到此 java.lang.OutOfMemoryError: PermGen space
异常。我正在使用 Eclipse Juno 和 Tomcat 7.0。此异常在控制台中每 10-15 分钟至少发生一次。如何解决?
Feb 25, 2016 10:23:23 AM org.springframework.beans.factory.support.DefaultListableBeanFactory destroyBean
SEVERE: Destroy method on bean with name 'mvcUrlPathHelper' threw an exception
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2895)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessBeforeDestruction(PersistenceAnnotationBeanPostProcessor.java:375)
at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:242)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:925)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:932)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:997)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:547)
Feb 25, 2016 10:23:24 AM org.springframework.beans.factory.support.DefaultListableBeanFactory destroyBean
SEVERE: Destroy method on bean with name 'mvcPathMatcher' threw an exception
java.lang.OutOfMemoryError: PermGen space
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space
当你得到java.lang.OutOfMemoryError: PermGen space errors
时,你需要增加Eclipse.To可用的永久代space 这样做请修改你的Eclipse eclipse.ini
文件。
设置如下
-XX:MaxPermSize=1024m
更多帮助您可以参考下面link,
java.lang.OutOfMemoryError: PermGen space
为更多 PermGenSpace 配置 Java 很容易,但我建议改为迁移到 Java 1.8 运行时。安装 Java 8 SDK 并添加两行
-vm
D:/jdk8/jre/bin/javaw.exe
到eclipse.ini。此问题已从 Java 1.8 开始修复,不再需要任何修改。
与其在 eclipse.ini 中进行更改,不如安装 Java 8。
我安装了 Java 8,现在我没有收到 java.lang.OutOfMemoryError: PermGen space
异常。
什么是java.lang.OutOfMemoryError:PermGen space?
答:
java.lang.OutOfMemoryError: PermGen space
信息表示Permanent Generation在内存中的区域已经耗尽
任何 Java 应用程序都可以使用有限的内存。您的特定应用程序可以使用的确切内存量在应用程序启动期间指定。
Java内存被分成不同的区域,如下图所示:
这个 PermGen 错误的解决方案是什么 space?
答:
对于堆,
export JVM_ARGS="-Xms1024m -Xmx1024m"
对于 Permgen,
JVM_ARGS="-XX:PermSize=512M -XX:MaxPermSize=512m"
您还可以提供额外的部分
-XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC XX:+CMSClassUnloadingEnabled
您还可以提供更多附加部分:)
-XX:PermSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:SurvivorRatio=2 -XX:MaxTenuringThreshold=128 -XX:TargetSurvivorRatio=90 -Djava.awt.headless=true -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:+UseTLAB -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled
Metaspace: 新记忆space诞生
JDK 8 HotSpot JVM
现在使用本机内存来表示 class 元数据,称为 Metaspace
;类似于 Oracle JRockit
和 IBM JVM's
.
好消息是,这意味着不再有 java.lang.OutOfMemoryError: PermGen space
问题,您不再需要调整和监视此内存 space。
相关Link:
- https://plumbr.eu/outofmemoryerror/java-heap-space
- https://plumbr.eu/outofmemoryerror/permgen-space
- http://stas-blogspot.blogspot.in/2011/07/most-complete-list-of-xx-options-for.html#UseConcMarkSweepGC
- https://www.javacodegeeks.com/2013/12/decoding-java-lang-outofmemoryerror-permgen-space.html
- http://www.javavillage.in/reasons-outofmemory-permespace.php
- Dealing with "java.lang.OutOfMemoryError: PermGen space" error
Java 8 Links