Я работаю над базовым приложением на основе Struts, которое испытывает большие всплески памяти. У нас есть инструмент мониторинга, который заметит один запрос на пользователя, добавляющий 3 МБ памяти кучи JVM. Есть ли какие-нибудь советы по поощрению более ранней сборки мусора, освобождению памяти или повышению производительности?
Приложение представляет собой базовое приложение Struts, но в отчете JSP много строк, поэтому может быть создано много объектов. Но это не вещи, которые вы не видели раньше.
- Выполнить набор запросов к базе данных.
- Создайте сериализованный объектный компонент POJO. Это представляет строку.
- Добавить строку в список массивов.
- Установите список массивов в объект формы при вызове действия.
- Логика JSP будет перебирать список из ActionForm, и данные отображаются пользователю.
Примечания:
1. Форма находится в области сеанса и, возможно, в том списке массивов данных (возможно, это проблема).
2. Компонент POJO содержит примерно 20 полей, смесь String или BigDecimal данных.
В отчете может быть от 300 до 1200 или около того строк. Таким образом, создано как минимум столько же объектов.