【发布时间】:2010-04-07 13:53:34
【问题描述】:
我已经实现了一个过滤器 (javax.servlet.Filter)。启用 JMX 时,我现在有一些奇怪的行为。一旦启用它,我将在短时间内收到“java.lang.OutOfMemoryError: PermGen space”错误。
我真的不明白为什么会这样。禁用 JMX 后,应用程序似乎运行良好。
【问题讨论】:
标签: java jmx out-of-memory
我已经实现了一个过滤器 (javax.servlet.Filter)。启用 JMX 时,我现在有一些奇怪的行为。一旦启用它,我将在短时间内收到“java.lang.OutOfMemoryError: PermGen space”错误。
我真的不明白为什么会这样。禁用 JMX 后,应用程序似乎运行良好。
【问题讨论】:
标签: java jmx out-of-memory
您需要使用命令行选项来启动您的应用程序,例如
-XX:MaxPermSize=100m
(在本例中使用 100 兆字节)。
PermGen 空间是内存的一部分,字符串常量、类文件等驻留其中,即所有创建一次且不能被垃圾回收的东西。不是每个 JVM 都使用这个概念,但 Sun JVM 会。
【讨论】: