这不是一个问题...我很抱歉,如果这违反规则,但我发现谷歌对这个网站的评价非常高,对我来说这个信息会有很大的帮助。如果不接受,我们可以删除此消息,并且“伤害”仍然有限。
我从RichFaces-3.3.3的MyFaces-2.0.10切换到RichFaces-4.2-Final的MyFaces-2.1.6,我们的应用程序的内存使用率大幅下降。从每个会话惊人的50MB +到几乎没有。我们过去每20个用户消耗至少1GB,并且对于任何数量的用户而言都降低到200MB以下(<50测试)。另一个影响是它看起来更快,但我们没有对此进行基准测试。
迁移需要做很多工作,花了两个程序员大约4个月(总共30个小时/周)来学习新的方法并实现它。但这显然取决于项目的规模。我们不得不应对现在修复的RF和MyFaces中的许多错误/问题。我认为我可以用我现在所知的三分之一时间做到这一点。 BalusC将在一周内完成:)
所以我的建议是,如果你有内存问题,可能会开始升级。它必须在某一天完成,为什么不呢?
MAG, 米洛
答案 0 :(得分:1)
很棒的人已经开始注意到MyFaces Core 2.1.6所做的重大改进。真的有很多很酷的技巧,但仅在2.1.6中添加了最新的线条,最终的效果是内存使用/代码速度/会话大小的大幅提升。 MyFaces Core 2.1.7也将包含另一组改进,敬请关注MyFaces Team Twitter
答案 1 :(得分:0)
自JSF 2.0以来,状态保存得到了改善。引入了“部分状态保存”,只能保存相关组件(UIForm
,UIInput
等)的状态,而不是整个组件树({{1} })。由于视图状态默认保存在服务器端会话中,这确实会降低内存使用量,因为如果你有相对较大的视图。
虽然为JSF 1.x设计的RichFaces 3.3.x适用于JSF 2.0(有一些黑客攻击),但它根本没有使用新的JSF 2.0部分状态保存。 RichFaces 4.x是专为JSF 2.x设计的,它支持它,因此在完成时你肯定会看到内存使用量下降。
为了进一步改进,您可以考虑将状态保存方法设置为UIViewRoot
,只需最少的网络带宽增加。这样,内存使用量将进一步减少,任何潜在的client
都将被淘汰。