我已经实现了一个过滤器(javax.servlet.Filter)。启用JMX时,我现在有一些奇怪的行为。一旦启用它,我将在短时间内得到“java.lang.OutOfMemoryError:PermGen space”错误。
我真的不明白为什么会这样。当禁用JMX时,应用程序似乎运行正常。
答案 0 :(得分:3)
您需要使用命令行选项(如
)启动应用程序-XX:MaxPermSize=100m
(在本例中使用100兆字节)。
PermGen空间是内存的一部分,其中存在字符串常量,类文件等等,即一次创建的所有内容,并且不能进行垃圾回收。并非每个JVM都使用此概念,但Sun JVM使用此概念。