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

我真的不明白为什么。当禁用JMX时,应用程序似乎运行良好。

最佳答案

您需要使用以下命令行选项启动应用程序

-XX:MaxPermSize=100m


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

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

09-15 23:28