我正在开发一个JSF应用程序,该应用程序应支持同时登录的大量用户。当我们进行应力测试时,我们发现大部分CPU时间都花在重建和遍历组件树上。
我的第一个想法是尝试使页面的特定部分无状态,并因此从组件树中排除。但是,如果我将一个带有标记为瞬态的f:view的表单元素进行包装:
<f:view transient="true">
<h:form>
....
</h:form>
</f:view>
所有其他页面上的表单也是无状态的(应该保存状态的隐藏输入字段的'value'属性值为'stateless':)。
是否有一种方法只使页面上特定的表单无状态,或者整个页面可以是无状态或有状态的?
感谢任何帮助!
编辑:
我们使用Mojarra 2.2.7进行实现,同时使用Primefaces 4.0作为组件库和Omnifaces 1.7用于某些实用功能。