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

时间:2010-06-04 14:35:05

标签: maven-2 glassfish glassfish-3 permgen

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

<plugin>
  <artifactId>maven-glassfish-plugin</artifactId>
  <packaging>maven-plugin</packaging>
  <version>1.0-alpha-4</version>
  <configuration>
    <httpPort>8080</httpPort>
  </configuration>
</plugin>

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

  

java.lang.OutOfMemoryError:PermGen space

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

set MAVEN_OPTS=-Xmx1024m

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

Glassfish插件是否有任何配置设置可以提高其内存?

谢谢!

2 个答案:

答案 0 :(得分:10)

只是澄清一下。永久生成空间包含加载的类对象和实习字符串。它被分配在Java堆的外部,如下所示:

alt text

在最近的Sun VM上,默认的最大大小为64m(即-XX:MaxPermSize=64m),并且适用于大多数应用程序(问题很可能与此处频繁的取消部署/重新部署有关)。我会尝试使用-XX:MaxPermSize=128m-XX:MaxPermSize=256m1024m似乎真的超大了!

答案 1 :(得分:5)

在与一些同事进一步协商后,似乎我在Maven中增加了错误的记忆价值。

为了增加PermGen空间,我将其添加到我的MAVEN_OPTS:

set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=1024m