四、 性能比较
1. JSF
在只使用JSF及JSF自定义组件的情况下,Demo应用速度最快,200用户并发访问的响应时间为1.8秒,基本上可以达到Servlet + JSP的性能。
使用JSF + 5个Facelet Composition组件的情况下,Demo应用仍可达到200用户并发访问的响应时间为2.6秒的性能。
使用JSF + 20个Facelet Composition组件的情况下,Demo应用可达到200用户并发访问的响应时间为3.1秒的性能。
如果在业务层方法没有大的效率问题、并在压力较大的页面适当使用缓存的情况下,JSF应用程序可以达到在Dell 2850机器上100-200并发5秒内响应的性能。
2. Tapestry
在Tapestry4之前的版本,Tapestry使用了大量的动态调用(大部分是使用OGNL调用的),这样势必会造成大量运行效率的损失。好在大多数WEB程序的瓶颈是在访问数据库而不是在页面上,所以并没有对Tapestry的推广构成毁灭性的影响。但是随着Tapestry社区的发展,使用人群的增加,Howard Lewis Ship(Tapestry的作者)和一些支持Tapestry项目的开发者,意识到了这个问题,并作了大量的工作对性能进行改进。
在Tapestry引入HiveMind之后,Tapestry的活力明显的增强了,第三方支持包也越来越丰富。这种丰富不仅仅是组件的丰富,而是包括框架在内。其它人可以很容易的为Tapestry提供高效的服务。
从测试数据可以看到Tapestry在使用相同数量框架自身提供组件的情况下,运行效率比JSF明显要低一些,但也算是在可以接受的范围内。在Tapestry引入HiveMind之后,Tapestry的活力明显的增强了,第三方支持包也越来越丰富。这种丰富不仅仅是组件的丰富,而是包括框架在内。其它人可以很容易的为Tapestry提供高效的服务。