启用JMX会导致java.lang.OutOfMemoryError:PermGen空间

时间:2010-04-07 13:53:35

标签: java jmx out-of-memory

我已经实现了一个过滤器(javax.servlet.Filter)。启用JMX时,我现在有一些奇怪的行为。一旦启用它,我将在短时间内得到“java.lang.OutOfMemoryError:PermGen space”错误。

我真的不明白为什么会这样。当禁用JMX时,应用程序似乎运行正常。

1 个答案:

答案 0 :(得分:3)

您需要使用命令行选项(如

)启动应用程序
-XX:MaxPermSize=100m

(在本例中使用100兆字节)。

PermGen空间是内存的一部分,其中存在字符串常量,类文件等等,即一次创建的所有内容,并且不能进行垃圾回收。并非每个JVM都使用此概念,但Sun JVM使用此概念。