Использование памяти MyFaces и Richfaces - PullRequest
1 голос
/ 29 марта 2012

это не вопрос ... извините, если это противоречит правилам, но я считаю, что Google оценивает этот сайт очень высоко и для меня эта информация очень помогла бы. Если это неприемлемо, мы можем удалить это сообщение, и «вред» остается ограниченным.

Я перешел с MyFaces-2.0.10 с RichFaces-3.3.3 на MyFaces-2.1.6 с RichFaces-4.2-Final, и использование памяти нашим приложением сильно сократилось. От ошеломляющих 50 МБ + за сеанс до почти ни одного. Раньше мы использовали не менее 1 ГБ для каждых 20 пользователей, а для любого количества пользователей оно уменьшалось до 200 МБ (<50 протестировано). Другой эффект состоит в том, что все это кажется быстрее, но мы не тестировали его. </p>

Было много работы по миграции, и двум программистам потребовалось около 4 месяцев (всего 30 часов в неделю), чтобы изучить новые способы и реализовать их. Но это, очевидно, будет зависеть от размера проекта. Нам пришлось справиться с множеством ошибок / проблем в RF и MyFaces, которые сейчас исправлены. Я думаю, что я мог бы сделать это в треть времени с тем, что я знаю сейчас. BalusC сделает это через неделю:)

Так что я советую, если у вас проблемы с памятью, возможно, стоит начать обновление. Это должно быть сделано когда-нибудь, так почему бы и нет?

MAG, Мило

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Замечательно, что люди начали замечать большие улучшения, сделанные в MyFaces Core 2.1.6.На самом деле было сделано много интересных трюков, но только в 2.1.6 были добавлены последние строки, и в конечном итоге это значительно улучшило использование памяти / скорость кода / размер сеанса.MyFaces Core 2.1.7 также будет содержать еще ряд улучшений, так что следите за обновлениями, следуя MyFaces Team Twitter

0 голосов
/ 29 марта 2012

Сохранение состояния улучшено с версии JSF 2.0.Была введена функция «Частичное сохранение состояния», которая позволяет сохранять состояние только соответствующих компонентов (UIForm, UIInput и т. Д.) Вместо полного дерева компонентов (UIViewRoot).Поскольку состояние представления по умолчанию сохраняется в сеансе на стороне сервера, это действительно приведет к уменьшению использования памяти, если у вас относительно большие представления.

Хотя RichFaces 3.3.x, которая предназначена для JSF 1.x, работает на JSF 2.0 (с некоторыми взломами), он вообще не использует новое частичное сохранение состояния JSF 2.0.RichFaces 4.x, который разработан для JSF 2.x, поддерживает его, поэтому при правильном выполнении вы наверняка увидите падение использования памяти.

Чтобы еще больше улучшить его, можно рассмотреть возможность сохранения состоянияметод client с минимальным увеличением пропускной способности сети.Таким образом, использование памяти будет дополнительно уменьшено, а любой потенциальный ViewExpiredException будет исключен.

См. Также:

...