首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OutOfMemory PermGen空间

OutOfMemory PermGen空间
EN

Stack Overflow用户
提问于 2013-10-30 22:05:26
回答 2查看 1.5K关注 0票数 0

在运行我的应用程序时,我得到了一个OutOfMemory: PermGen空间错误。简要说明:

从源代码运行时不会发生错误,但在从已部署的.jnlp启动程序运行时确实会发生错误。此错误发生在通过RMI从公司数据库中检索数据的屏幕中。从源代码运行和从启动程序运行都使用相同的RMI url。从源代码和启动程序运行都使用相同的Java (6_38)。该应用程序托管在OC4J 10.1.3中。当错误发生时,它不仅会杀死我的应用程序,还会杀死Java控制台。

我向Application控件中的服务器属性添加了以下选项,就像在其他一些问题中所建议的那样,但是没有效果。

代码语言:javascript
复制
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled

在java控制台中记录的错误是这样的,从跟踪文件中获取:

代码语言:javascript
复制
Couldn't process record:
java.lang.OutOfMemoryError: PermGen space
    at sun.misc.Unsafe.defineClass(Native Method)
    at sun.reflect.ClassDefiner.defineClass(Unknown Source)
    at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)
    at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(Unknown Source)
    at sun.reflect.ReflectionFactory.newConstructorForSerialization(Unknown Source)
    at java.io.ObjectStreamClass.getSerializableConstructor(Unknown Source)
    at java.io.ObjectStreamClass.access$1500(Unknown Source)
    at java.io.ObjectStreamClass$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.ObjectStreamClass.<init>(Unknown Source)
    at java.io.ObjectStreamClass.lookup(Unknown Source)

我不知道还有什么其他的信息会有帮助,我也不知道如何继续下去。欢迎提供任何指导。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-30 22:12:31

首先尝试增加您的烫发大小,因为默认值通常太低(主要用于64位jvms )。

所需的参数是-XX:PermSize-XX:MaxPermSize

最大值256米通常是最高值。

票数 0
EN

Stack Overflow用户

发布于 2013-12-21 10:30:48

如果您在web应用程序中有ClassLoader/PermGen泄漏,您可以使用ClassLoader防漏库处理它们。

如果您想自己跟踪泄漏,本博客系列将有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19694713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档