也许,我做了一个错误的选择,选择使用像JSF这样的Component-based Framework来开发面向互联网的高流量web应用程序。尽管使用JSF的开发更容易,但我现在担心的是JSF是否会允许我使用这种可伸缩性和性能,以及所有的基本问题和问题。国家储蓄在一个高流量的网络应用,这是完全有意义的!?
现在我如何调整JSF应用程序,使其在重载下表现得更好?我已经尝试通过减少页面上组件的no来减少状态/组件树。我还可以调整哪些其他东西来使JSF应用程序更好地运行呢?
发布于 2012-03-15 19:59:48
最好看看会话所需的会话作用域bean,以及只需要请求作用域的bean。此外,当您完成会话作用域bean时,尝试查看您可以在哪里实际地清理它们,因为这将减少会话大小。
如果服务器内存失控,您可以将其配置为在客户端存储会话状态,但是这将增加通过服务器的请求和响应的大小,因此带宽可能会受到影响。
同样,如果带宽是瓶颈,那么尝试在服务器上存储会话状态,以减少请求和响应大小。
然而,Martijn是正确的,在指向JSF之前,您应该花时间使用适当的分析工具来正确评估性能瓶颈。这也可能是一个数据库问题。
发布于 2012-05-22 10:58:43
JSF有一个(可能)重要的性能问题:创建"View“(页面结构的服务器端表示)非常昂贵。
至少参考实现(Mojarra)对每个请求都这样做。这意味着,如果您有一个大页面,即使您只通过AJAX更新一个部件,也会有很高的开销(如几个100毫秒)。
一个可能的解决方案是“无状态JSF":http://industrieit.com/blog/2011/11/stateless-jsf-high-performance-zero-per-request-memory-overhead/
这是不标准的,但似乎效果很好。
发布于 2012-05-21 18:57:13
了解JSF性能如何的一个好开端是看看这个博客:
理解JSF 2和Wicket:性能比较
有一个测试应用程序,您需要适当地调优JSF所需的一切。这很简单,因为您通常只需要将javax.faces.PROJECT_STAGE web配置参数设置为Production,而JSF将为您配置,但是还有一些附加的配置参数对您的帮助很小。
https://softwareengineering.stackexchange.com/questions/139944
复制相似问题