gpt4 book ai didi

java - PermGen 空间异常

转载 作者:搜寻专家 更新时间:2023-11-01 01:18:36 25 4
gpt4 key购买 nike

我正在为在 JBoss 上运行的应用程序使用 JAVA 5(32 位)。但它仅适用于 32 位。当我们在 64 位 java5 上部署它时,它会抛出异常

"java.lang.OutOfMemoryError: PermGen space" exception

是否需要任何补丁?是否需要更改任何代码代码?

提前致谢。

最佳答案

当我在 tomcat 或 jetty 下运行我的网络应用程序时,我遇到了同样的问题。永久代内存用于加载类,其思想是“类一次加载,永远加载”。由于我使用了相当多的库和 Spring 框架,所以这个内存很快就会被填满,尤其是当我多次重新部署 Web 应用程序而不重新启动 servlet 容器时。

我发现增加最大永久代是不够的。您还需要允许垃圾回收在运行时删除未使用的类,否则将被填满并抛出 PermGen 空间异常。这是我为我的 servlet 容器添加的 JVM 选项,

-XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

-XX:MaxPermSize用于设置永久代的最大值。这应该大于默认大小。

-XX:+CMSClassUnloadingEnabled 此选项用于允许 JVM 在运行时卸载类。默认情况下,类卸载是禁用的。对于 Java 5,请阅读 this .

-XX:+UseConcMarkSweepGC,为了使类上传选项起作用,还必须设置此选项(ref)

另外,您应该考虑升级您的 JVM 版本。 Java 5 太旧了。

关于java - PermGen 空间异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7383658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com