BodyContentImpl проблема утечки памяти в теге jsp - PullRequest
1 голос
/ 14 декабря 2010

Я использую Tomcat версии 5.0.28, я анализировал дамп кучи.Это показывает, что утечка памяти происходит из-за объектов BodyContentImpl, которые, кажется (не уверены), кэшируют содержимое jsp между тегами.Также я обнаружил, что есть проблема в этой версии, он не сбрасывает буфер, который он использует для хранения данных.Существует возможность ограничить буфер в более поздних версиях tomcat.

Что я хочу знать, так это то, что на самом деле делает BodyContentImpl, это кэширует теги или данные.как это будет полезно в динамически меняющейся JSP.

1 Ответ

4 голосов
/ 13 мая 2011

Да, ваш тег JSP кэшируется.В частности, «Пул пользовательских тегов JSP - объекты Java, созданные для пользовательских тегов JSP, теперь можно объединять и использовать повторно. Это значительно повышает производительность страниц JSP, использующих пользовательские теги.»

Отключение добавления в catalina.properties (или catalina_opts)

org.apache.jasper.runtime.JspFactoryImpl.USE_POOL = false org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER = true

, чтобы отключить это (однако, яне уверен, было ли это когда-либо перенесено в 5.0.x из 5.5.x)

См., например, Конфигурация Tomcat 5.5

...