标签: permgen

我们是否在Hem的PermGen区域拥有所有原始类型的池?

我知道堆的PermGen区域中String池的概念.所以,当我们做类似的事情

String firstString = "Stack";
String secondString = "Stack";
Run Code Online (Sandbox Code Playgroud)

两个引用firstStringsecondString指向池中的同一个对象.但我尝试使用int类型的变量.

    int firstInt = 5;
    int secondInt = 5;

    if(firstInt == secondInt) {
        System.out.println("Both point to same allocated memory");
    } else {
        System.out.println("Both point to different allocated memory");
    }
Run Code Online (Sandbox Code Playgroud)

结果是Both point to same object,当我尝试

Integer firstInteger = new Integer(2);
Integer secondInteger = new Integer(2);

    if(firstInteger == secondInteger) {
        System.out.println("Both point to same object");
    } else {
        System.out.println("Both point to different object");
    }
Run Code Online (Sandbox Code Playgroud)

输出是 …

java heap permgen

3
推荐指数
1
解决办法
1255
查看次数

JBoss 6.1 + PermGen空间

我在Solaris上部署了Jboss 6.1,它运行正常.然后我做了一些FTP和Telnet,直接root登录被禁用.之后我得到了PermGen空间错误.

这个错误可能是什么原因?请帮忙.

错误:

12:21:30,873 ERROR [AbstractKernelController] Error installing to PostClassLoader: name=vfs:///usr05/ccapp/app/jboss-6.1.0/server/srs/deploy/SRSEar.ear state=ClassLoader mode=Manual requiredState=PostClassLoader: org.jboss.deployers.spi.DeploymentException: Error during deploy: vfs:///usr05/ccapp/app/jboss-6.1.0/server/srs/deploy/SRSEar.ear
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) [:2.2.2.GA]
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:185) [:2.2.2.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.2.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.2.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.2.GA]
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.SP2]
at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.2.GA]
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.2.GA]
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.2.GA]
at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.1.0.Final]
at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:151) [:0.2.2]
at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.2.2] …
Run Code Online (Sandbox Code Playgroud)

java permgen solaris-10 jboss6.x

3
推荐指数
1
解决办法
1万
查看次数

Maven surefire permgen空间不足

尝试了许多方法来增加permgen大小,但没有运气.

我在我的pom中使用以下配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <includes>
            <argLine>-Xmx512m -XX:MaxPermSize=512m -XX:PermSize=216m</argLine>
        </includes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

在命令行中尝试"设置MAVEN_OPTS = -Xmx512m -XX:MaxPermSize = 128m",也没有运气.

maven Surefire booter forkedBooter

java permgen maven maven-surefire-plugin

3
推荐指数
1
解决办法
2939
查看次数

如何增加maven-glassfish-plugin的内存?

我正在使用嵌入式Glassfish的Maven插件 - 这是我的插件声明:

<plugin>
  <artifactId>maven-glassfish-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <version>1.0-alpha-4</version>
  <configuration>
    <httpPort>8080</httpPort>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

通过我的数据密集型Web应用程序几次点击后,我的PermGen空间用完了.

java.lang.OutOfMemoryError:PermGen空间

我已经配置了MAVEN_OPTS以使用更多内存:

set MAVEN_OPTS=-Xmx1024m
Run Code Online (Sandbox Code Playgroud)

但看起来产生的Java进程mvn glassfish:run在占用之前只能获得大约半GB的内存.

Glassfish插件是否具有任何用于增加其内存的配置设置?

谢谢!

maven-2 glassfish permgen glassfish-3

2
推荐指数
2
解决办法
2425
查看次数

在重新部署时,是否仍然无法摆脱PermgenSpace异常?

这是我一直以来的一个老问题.我想在开发环境中重新部署.在一些部署之后,我用完permgen并且必须杀死服务器.多年前我试图找到问题的解决方案,但刚刚发现Spring和Hibernate互相指责问题.有没有找到解决方案?

Spring Roo声称它不会在运行时生成类,因此它不会成为问题.它真的有效,如果确实如此,我该如何配置我的应用程序呢?

我知道这里有两个问题,但如果你能回答一个问题就够了:)

java jvm permgen

2
推荐指数
1
解决办法
285
查看次数

如何在Tomcat中重新部署之前监视PermGen空间使用情况

为了确定在下一次重新调试之后jvm是否可能遇到permgen空间不足,我想先监测当前的permgen空间使用情况

就像是:

set myPermGenThreshold = 0.51  (51%)
currentlyUsedPermGenSize = (...ask the jvm here... say it's 0.6)

if (currentlyUsedPermGenSize > myPermGenThreshold ) {
 (...restart tomcat...)
}
else {
  (...redeploy application...)
}
Run Code Online (Sandbox Code Playgroud)

java tomcat permgen redeploy

2
推荐指数
1
解决办法
3422
查看次数

MaxPermSize忽略了Tomcat 7

我正在尝试在Windows Tomcat服务器上运行多个工具.服务器启动正常,我也可以看到Tomcat的管理器页面.但是当我打开一个工具时,会出现"OutOfMemoryError:PermGen space".我在catalina.bat中设置MaxPermSize尝试了很多,这是我的CATALINA_OPTS:

set CATALINA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms64m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
Run Code Online (Sandbox Code Playgroud)

当我在我的Tomcat服务器旁边运行JVisualVM时,我可以看到参数被很好地拾取: 概观

但是当我进入监视器选项卡并检查PermGen时,最大值是67mb而不是我设置CATALINA_OPTS的512.所以参数设置,但Tomcat忽略它们.. PermGen的

我已经尝试了几个小时解决这个问题,但没有成功..

任何人?

java tomcat permgen

2
推荐指数
1
解决办法
2万
查看次数

视窗.如何添加PermGen空间?

如何在Windows中为jvm添加PermGen空间?我发现很多关于它的链接?但我不明白我必须点击并写下新值

java windows permgen

2
推荐指数
1
解决办法
4824
查看次数

如果我创建任意数量的String对象,JVM是否会耗尽PermGen空间?

假设我编写了一个程序,它创建了很多String对象和intern()它们:

String someString = param1 + param2;
someString.intern();
Run Code Online (Sandbox Code Playgroud)

这对于一小组字符串来说很好,但是如果我尝试创建十亿个字符串String呢?(或者说亿亿亿?)据我所知,JVM 在PermGen区域为s 维护一个常量池,而PermGen没有得到GC -ed.String

因此,如果我String在循环中创建了过多的对象,但是我删除了对它们的引用,那么它们将得到GC -ed(我将用尽PermGen空间)吗?这些String都是独一无二的,没有任何重复.

java memory string jvm permgen

2
推荐指数
1
解决办法
254
查看次数

Groovy更新导致PermGen中大量的GroovyClassLoaders死机

我有一个Java 7项目,它每n分钟由n个进程运行一次脚本。这是运行脚本的代码示例。

ScheduledFuture scheduledFuture = scheduledService.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                try (GroovyClassLoader cl = new GroovyClassLoader()) {
                    // Load up reusable script modules in the class loader
                    Class scriptClass = cl.parseClass(scriptSource);
                    Foo script = optimizationClass.newInstance();

                    // Tell Groovy that we don't need class meta info
                    GroovySystem.getMetaClassRegistry().removeMetaClass(scriptClass);
                    script.run();
                    cl.clearCache();
                } catch (IOException e) {
                    LOGGER.error("Failed to cleanup Groovy class loader, this will cause a memory leak", e);
                }
            }
        }, 0, scheduledRun, TimeUnit.SECONDS);

        scheduledFuture.get();
Run Code Online (Sandbox Code Playgroud)

由于某些原因,Groovy 2.1.7在Perm Gen中没有内存泄漏。当升级到Groovy 2.3.8或Groovy …

java groovy permgen

2
推荐指数
1
解决办法
1733
查看次数