所有
我正在研究如何缩减我们的JSF应用程序在每个用户基础上消耗的会话内存量。
我们正在使用在IBM Websphere 7.0补丁19上运行的MyFaces 1.1.7和Tomahawk 1.1.5。(目前无法升级其中任何一项)
IBM的指导原则是会话大小应小于5k - 平均大约2.5k,以免影响服务器和会话复制的性能。我们目前正在使用Memory to Memory,但正在考虑按照IBM的建议迁移到数据库。
我们的网站每位用户的运行速度约为35M。我们将视图状态的数量从100更改为10,并将其降低到大约4M。
我们有几个支持bean,它们目前是会话范围,正在考虑将它们更改为请求范围。
我还发现了以下内容:http://www.econsulting.nl/images/pdf/Tuning%20JSF%20Applications-%20J-Spring%202008.pdf似乎有很多关于JSF如何处理页面上某些内容的信息。目前仍在调查中,以确保所陈述的内容有意义。
我还在某处读过,无论托管支持bean是会话还是请求范围,视图状态仍将具有bean及其内容。因此视图状态大小不会改变。寻求对此的澄清。
问题是其他人面临同样的问题,其中JSF应用程序倾向于为给定的用户会话消耗大量内存吗?
使用JSF时,有哪些减少此大小的最佳做法是什么?
运行JSF应用程序时IBM WebSphere上的会话复制问题?
有没有关于JSF / MyFaces如何利用堆内存的文档 - Young vs old还是应该在这个范围内考虑?垃圾收集调整?
我们看到的结果是,如果用户跳到另一台服务器,会话数据不会出现,因为数据有多大以及复制需要多长时间。用户体验问题。
我们已经看到一个问题,即会话中对象的更改似乎没有正确更新,并且已经完成了一些会话管理调优,我们在其中自定义设置以便写出所有会话属性。查看.jar文件时,当会话中对象的内容发生更改时,myFaces会正确地进行调用。因此,WebSphere会话侦听器应该接受这种更改。
答案 0 :(得分:2)
您可以尝试在客户端保存视图状态,但我不确定MyFaces 1.1.7是否已支持此