Я работаю над настройкой производительности корпоративного веб-приложения с около 300 одновременно работающих пользователей.Из журнала GC я заметил, что куча приложений всегда растет, а объекты всегда накапливаются даже после Full GC.Я получил рабочий дамп кучи и был удивлен, что объекты сеанса занимают более 90% размера кучи!Это все из-за AjaxStateHolderObject.
Приложение работает на JSF 1.X и RichFaces 3.3.0.
Перед началом этого обсуждения я попробовал следующее:
- Добавлен следующий код в web.xml
<context-param>
<param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
<param-value>1</param-value>
</context-param>
- Добавлен следующий код в web.xml
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>1</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>1</param-value>
</context-param>
- Обновлен с RichFaces 3.3.0 до 3.3.3
Все вышеупомянутые попытки не смогли решить проблему утечки памяти.
Обновления
* Один сеанс пользователя может занимать до 25 МБ из-за огромного размера AjaxStateHolder.
* Большинство управляемых bean-компонентов приложения являются областью запроса, и в сеансе нет неиспользуемых ссылочных объектов, единственная проблема, связаннаяпамять является ajaxStateHolder.
Заранее благодарим за любые рекомендации.
Буду признателен за любую помощь, потому что я не нашел ничего по этому вопросу в Интернете.