问题标签 [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.

0 投票
33 回答
1049843 浏览

exception - 处理“java.lang.OutOfMemoryError: PermGen space”错误

最近我在我的 Web 应用程序中遇到了这个错误:

java.lang.OutOfMemoryError: PermGen 空间

它是运行在 Tomcat 6 和 JDK 1.6 上的典型 Hibernate/JPA + IceFaces/JSF 应用程序。显然,这可能会在重新部署应用程序几次后发生。

是什么原因造成的,可以做些什么来避免它?我该如何解决这个问题?

0 投票
1 回答
1486 浏览

java - 你如何在 Java 中设计一个好的 permgen 空间字符串?

我想知道您将如何在 Java 中设计一个好的 permgen 空间字符串。根据我的研究和理解,我想出了以下几点:

例子:JAVA_OPTS='-Xmx512m -XX:MaxPermSize=256m -server -Djava.awt.headless=true'

抱歉,当我第一次发布问题时,示例没有粘贴......

0 投票
8 回答
8640 浏览

java - 我如何发现永久代中的内容

给定一个堆转储或一个正在运行的虚拟机,我如何发现永久代的内容是什么?我知道“jmap -permstat”,但这在 Windows 上不可用。

0 投票
8 回答
170727 浏览

java - PermGen 实际上代表什么?

我知道 PermGen 是什么,它的用途,它为什么失败,如何增加它等等。

我不知道 PermGen 实际上代表什么。永久的……根……什么?

有谁知道 PermGen 实际上代表什么?

0 投票
2 回答
9011 浏览

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

我正在尝试java.lang.OutOfMemoryError: PermGen Space在 Sun 的 Hotspot JVM 上运行时诊断错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?

0 投票
7 回答
7153 浏览

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 设置而失败?

0 投票
3 回答
3097 浏览

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

0 投票
8 回答
13702 浏览

java - Tomcat-Spring-Hibernate Web 应用程序中的“PermGen out of space”异常可以做什么?

我们有一个使用 Spring-Hibernate 将注册用户数据持久保存在 Oracle 数据库中的 Web 应用程序。该应用程序在开发环境中运行良好,但是当我们将它复制到具有更多数据的实时环境时,它失败了。最初应用程序正常启动,但经过几次操作后出现“PermGen 空间不足”异常。

我已经开始在 Google、Spring 和 Hibernate 论坛中搜索,但没有帮助。关于这个错误有很多讨论,但是对于每个解决方案,都有人说:“它有效”而其他人说“它不起作用”。

例如,许多人提出增加-XX:MaxPermSizeJVM参数,其他人说它不起作用。有帖子说需要使用javassist库和其他库以及cglib库的使用问题。其他人说问题出在cglib中。

我们使用 Java1.5_0_09、带有 javaassist3.4.GA 的 Spring 2.5、Tomcat 5.5 作为 Web 容器和 Oracle 10g 作为数据库。

谁能解释一下导致这个问题的原因以及如何解决它?

0 投票
3 回答
2117 浏览

java - jBoss 4.0.2 多次部署相同的 WAR 会导致 jBoss 由于 PermGem/Out-of-Memory 错误而崩溃

我开发 Web 应用程序并使用 jBoss 4.0.2,当我用 eclipse 重新部署我的 WAR 多次时,jBoss 会因为内存不足而崩溃。而且当我必须在生产环境中安装新版本时,它会消耗生产服务器的内存,这意味着我必须停止 jBoss 以防止从客户服务器重新部署吃内存。有没有解决这个问题的方法?

0 投票
1 回答
3969 浏览

java - 如何处理 Tomcat 中的 PermGen 空间异常?

每当我部署我的 Web 应用程序时,我都会收到 PermGen Space Exception。我在NetBeans中尝试了一些 JVM 选项,但仍然无法解决问题。