草庐IT

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

我们有一个使用Spring-Hibernate将注册用户数据持久保存在Oracle数据库中的Web应用程序。该应用程序在开发环境中运行良好,但是当我们将它复制到具有更多数据的实时环境时,它失败了。最初应用程序正常启动,但在几次操作后出现“PermGenoutofspace”异常。我已经开始在Google、Spring和Hibernate论坛中进行搜索,但没有任何帮助。关于这个错误有很多讨论,但是对于每个解决方案,都有人说:“它有效”而其他人说“它不起作用”。例如,很多人提出增加-XX:MaxPermSizeJVM参数,其他人说它不起作用。有帖子说需要使用javassist库和其他库以及

Android Studio Gradle 问题 : OutOfMemoryError: PermGen space

经过几个小时的努力,从Eclipse导入一个旧项目以使用Gradle并进入AndroidStudiov0.1.3...我现在得到的是我实际上可以在命令行上进行构建,但是当我在我得到的Studio中构建/重建项目:Gradle:FAILURE:Buildfailedwithanexception.*Whatwentwrong:Aproblemoccurredconfiguringproject':EpicMix'.>Failedtonotifyprojectevaluationlistener.>Aproblemoccurredconfiguringproject':facebook'.

Android Studio Gradle 问题 : OutOfMemoryError: PermGen space

经过几个小时的努力,从Eclipse导入一个旧项目以使用Gradle并进入AndroidStudiov0.1.3...我现在得到的是我实际上可以在命令行上进行构建,但是当我在我得到的Studio中构建/重建项目:Gradle:FAILURE:Buildfailedwithanexception.*Whatwentwrong:Aproblemoccurredconfiguringproject':EpicMix'.>Failedtonotifyprojectevaluationlistener.>Aproblemoccurredconfiguringproject':facebook'.

java - 我如何估计一个类的总 permgen 内存消耗?

最近,我在编写一个类时发现我可以将实例的内存消耗减少约10字节/元素,但代价是代码变得更加复杂。这将编译后的.class文件的大小增加了~10KB。我假设JVM必须将.class文件加载到内存中,因此除非至少有1000个左右的元素,否则这些更改不会为自己付出代价。但是,除非类文件中额外的10KB是代码复杂性增加的唯一成本,否则该算术不会奏效。ThisOracleblog这表明permgen中的类消耗了大量额外内存,而不仅仅是基于.class文件——例如,我怀疑更复杂的代码可能需要更多内存用于优化元数据。所以,这个问题有两个部分:如何测量特定类的实际permgen内存消耗?是在运行时使用

java - PermGen 空间是否减少了?

我想知道JVM是否正常卸载类以减少PermGen空间。所以这是我的问题:Java类是否会默认从JVM中卸载?关闭Jar类加载器是否会卸载该jar中所有已加载的类?应该使用什么命令/方式来允许卸载类?仅供引用,我确实尝试了网络上的一些解决方案,但没有一个能回答我的问题。(例如:WhatdoesJVMflagCMSClassUnloadingEnabledactuallydo?)PS:我指的是Java6+hibernate(类加载由hibernate处理) 最佳答案 摆脱已加载类的唯一方法是允许JVM通过消除对此类加载器的所有引用来对加

Java 类 (PermGen) 内存泄漏(Web 应用程序)- 通用解决方案?

我知道我有permgen内存泄漏。使用jvisualvm进行的分析表明,在进行热部署时(例如,在tomcat、WebSphere、WebLogic等中停止和启动应用程序而不终止JVM)-PermGen空间不断增加。在阅读、使用jhat和其他高级工具后,我意识到我可能在其父类加载器的某处引用了一个类的WebAppClassLoader。即使我在jhat上做了一些基于JavaScript的大量查询,我也无法确定它难道没有一个简单的实用程序可以找出谁负责让您的类加载器不被垃圾回收(从而允许对它加载的类进行垃圾回收)?我尝试了JProfiler、jvisualvm、jhat和很多Google致

java - 使用 Maven 在 IntelliJ 中构建时解决 PermGen 错误?

如果我在使用Maven在IntelliJ中构建项目时从应用程序服务器收到PermGenOutOfMemoryError,我是否应该增加Maven使用的堆?我使用Win7、8GBRAM,当我用Maven重建项目时,我从应用程序服务器获取PermGen。 最佳答案 将vmopt添加到mvn-XX:MaxPermSize=128M 关于java-使用Maven在IntelliJ中构建时解决PermGen错误?,我们在StackOverflow上找到一个类似的问题:

java - 除了 Class 对象之外,Permgen Space (sun 1.6 VM) 中还存储了什么?

我在运行约300个JUnit测试并使用Spring上下文时看到“java.lang.OutOfMemoryError:PermGenspace”。很难弄清楚是什么在吞噬PermGen,因为:在稳定状态下,应用程序消耗大约90m的永久生成空间我已经尝试-XX:MaxPermSize=256m进行单元测试-仍然用完了在启用-XX:+TraceClassLoading和-XX:+TraceClassUnloading的情况下,我在OutOfMemoryError。后者似乎表明除了Class对象之外还有其他东西正在填充PermGen,不是吗?如果是这样,它会是什么?例如,是否存在将类实例存储在

Java : how to check current Perm/PermGen Size?

昨天我在运行WebLogicApplicationServer11g安装程序时遇到了OutOfMemory错误,所以我谷歌了一下答案:java-Xms256m-Xmx512m-XX:PermSize=128m-XX:MaxPermSize=256m-jarwls1032_generic.jar一切正常:)但是,当我仔细考虑解决方案时,我可能犯了一个错误:我怎么知道那些的当前设置?我当然需要在覆盖它们之前检查它们的值,对吗?有什么想法吗?相关链接:anotherthreadonSO中的人建议的试错法,这并不理想。非常感谢。 最佳答案

java - permgen 是否包含在 -Xmx 中?

当我说-Xmx=1024m时,这是否包括permgen即-XX:MaxPermSize=是从这些1024m中获取的还是单独的?查看this我认为它需要从1024米开始,但直到现在我一直认为它们是分开的。 最佳答案 不,permGen空间是主堆之外的空间(后者通过SunVM上的-Xmx限制) 关于java-permgen是否包含在-Xmx中?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi