BodyContentImpl jsp标签内存泄漏问题

时间:2010-12-14 17:51:04

标签: caching tomcat memory-leaks heap jsp-tags

我正在使用Tomcat版本5.0.28,我正在分析堆转储。它显示内存泄漏是由于BodyContentImpl对象,它似乎(不确定)它缓存标记之间的jsp内容。 此外,我发现该版本存在问题,它不会重置其内部用于保存数据的缓冲区。在更高版本的tomcat中可以选择限制缓冲区。

我想知道的是,BodyContentImpl实际上做了什么,是否缓存了标签或数据。 它如何在动态变化的jsp中发挥作用。

1 个答案:

答案 0 :(得分:4)

是的,您的JSP标记内容已缓存。特别是“JSP自定义标记池” - 现在可以对为JSP自定义标记实例化的java对象进行池化和重用。这显着提高了使用自定义标记的JSP页面的性能。“

禁用添加到catalina.properties(或catalina_opts)

org.apache.jasper.runtime.JspFactoryImpl.USE_POOL =假 org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER =真

将其关闭(但是,我不确定这是否从5.5.x反向移植到5.0.x)

参见例如Tomcat 5.5 Configuration