问题标签 [permgen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
exception - 处理“java.lang.OutOfMemoryError: PermGen space”错误
最近我在我的 Web 应用程序中遇到了这个错误:
java.lang.OutOfMemoryError: PermGen 空间
它是运行在 Tomcat 6 和 JDK 1.6 上的典型 Hibernate/JPA + IceFaces/JSF 应用程序。显然,这可能会在重新部署应用程序几次后发生。
是什么原因造成的,可以做些什么来避免它?我该如何解决这个问题?
java - 你如何在 Java 中设计一个好的 permgen 空间字符串?
我想知道您将如何在 Java 中设计一个好的 permgen 空间字符串。根据我的研究和理解,我想出了以下几点:
例子:JAVA_OPTS='-Xmx512m -XX:MaxPermSize=256m -server -Djava.awt.headless=true'
抱歉,当我第一次发布问题时,示例没有粘贴......
java - 我如何发现永久代中的内容
给定一个堆转储或一个正在运行的虚拟机,我如何发现永久代的内容是什么?我知道“jmap -permstat”,但这在 Windows 上不可用。
java - PermGen 实际上代表什么?
我知道 PermGen 是什么,它的用途,它为什么失败,如何增加它等等。
我不知道 PermGen 实际上代表什么。永久的……根……什么?
有谁知道 PermGen 实际上代表什么?
java - 如何以编程方式找出我的 PermGen 空间使用情况?
我正在尝试java.lang.OutOfMemoryError: PermGen Space
在 Sun 的 Hotspot JVM 上运行时诊断错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?
java - 哪种免费的 JVM 实现具有最好的 PermGen 处理能力?
我在 Sun 的 JRE6 中运行 Tomcat6 并且每对部署我都会得到 OutOfMemoryException: PermGen。我已经完成了 PermGen 解决方案的谷歌搜索并尝试了许多修复。没有工作。我读了很多关于 Oracle 的 JRockit 的好东西,以及它的 PermGen 分配的大小如何(与 Sun 的 128M 相比),虽然它不能解决问题,但它允许我在 PermGen 异常之间重新部署 100 次,而不是 2现在几次。
JRockit 的问题是在生产中使用它需要花费数千美元购买 WebLogic。存在哪些其他(免费)选项对 PermGen 扩展更宽容?以下 JVM 在这方面的表现如何?
- IBM JVM
- 打开 JDK
- 停电
- 咖啡
...其他?
更新:有人问我为什么认为 PermGen max 是 128M。原因是每当我尝试将其提高到 128M 以上时,我的 JVM 都无法初始化:
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM
[2009-06-18 01:39:44] [info] Could not reserve enough space for object heap
[2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
奇怪的是,它未能为对象heap保留空间,尽管我不确定它是“the” heap 而不是“a” heap。
我以 1024MB 初始和 1536MB 最大堆启动 JVM。
我将关闭这个问题,因为它已被回答,即。“切换是无用的”,而是问为什么我的 Sun JVM 会因较大的 PermGen 设置而失败?
tomcat - 为什么当我将 PermGen 设置为 128M 以上时,我的 Sun JVM 无法初始化?
我需要增加我的 PermGen。目前我将以下内容作为命令行参数传递:
-XX:PermSize=128m
-XX:MaxPermSize=128m
这行得通。但是,如果我尝试增加这些值,我的 JVM 无法初始化,给我这个错误:
[2009-06-18 01:39:44] [info] Error occurred during initialization of VM
[2009-06-18 01:39:44] [info] Could not reserve enough space for object heap
[2009-06-18 01:39:44] [info]
[2009-06-18 01:39:44] [395 javajni.c] [error] CreateJavaVM Failed
具体来说,我正在尝试在包含的JRE6中启动Tomcat,但我认为这无关紧要。
编辑:我正在运行具有 2GB RAM 的 Win2k3 VM 映像。我使用带有以下参数的Monitor Tomcat应用程序启动 JVM :
初始内存池:1024,最大内存池:1536
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled
-XX:+UseConcMarkSweepGC
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 6.0
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 6.0\endorsed
-Djava.io.tmpdir=E:\tomcat\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\logging.properties
java - Tomcat-Spring-Hibernate Web 应用程序中的“PermGen out of space”异常可以做什么?
我们有一个使用 Spring-Hibernate 将注册用户数据持久保存在 Oracle 数据库中的 Web 应用程序。该应用程序在开发环境中运行良好,但是当我们将它复制到具有更多数据的实时环境时,它失败了。最初应用程序正常启动,但经过几次操作后出现“PermGen 空间不足”异常。
我已经开始在 Google、Spring 和 Hibernate 论坛中搜索,但没有帮助。关于这个错误有很多讨论,但是对于每个解决方案,都有人说:“它有效”而其他人说“它不起作用”。
例如,许多人提出增加-XX:MaxPermSize
JVM参数,其他人说它不起作用。有帖子说需要使用javassist库和其他库以及cglib库的使用问题。其他人说问题出在cglib中。
我们使用 Java1.5_0_09、带有 javaassist3.4.GA 的 Spring 2.5、Tomcat 5.5 作为 Web 容器和 Oracle 10g 作为数据库。
谁能解释一下导致这个问题的原因以及如何解决它?
java - jBoss 4.0.2 多次部署相同的 WAR 会导致 jBoss 由于 PermGem/Out-of-Memory 错误而崩溃
我开发 Web 应用程序并使用 jBoss 4.0.2,当我用 eclipse 重新部署我的 WAR 多次时,jBoss 会因为内存不足而崩溃。而且当我必须在生产环境中安装新版本时,它会消耗生产服务器的内存,这意味着我必须停止 jBoss 以防止从客户服务器重新部署吃内存。有没有解决这个问题的方法?
java - 如何处理 Tomcat 中的 PermGen 空间异常?
每当我部署我的 Web 应用程序时,我都会收到 PermGen Space Exception。我在NetBeans中尝试了一些 JVM 选项,但仍然无法解决问题。