(本文出自 http://blog.csdn.net/AlexLynn ,转载时请注明出处)
一、概述:
Struts2出来之后,有很多人开始尝试使用,很多概念与Struts1已经有了很大变化。
关于Struts2与Spring MVC之间的功能差异评述,网络上已经有很多,每个人都有自己的喜好和选择,这里就不再重复。
本篇只对Struts2与Spring MVC之间的运行速度做个比较,另外也对Sitemesh和Tiles运行速度做个比较,不做评论。
二、建立测试项目
具体项目文件请从以下地址下载(包含所有依赖包,共 10MB):
http://lcql.com.googlepages.com/Struts2SpringMVC.part1.rar
http://lcql.com.googlepages.com/Struts2SpringMVC.part2.rar
http://lcql.com.googlepages.com/Struts2SpringMVC.part3.rar
http://lcql.com.googlepages.com/Struts2SpringMVC.part4.rar
下载后解压,可以在JBUILDER中直接运行WEB,您也可以将WebRoot目录拷贝到您的Tomcat的部署目录(webapps)中运行 (http://localhost:8080/WebRoot/)。具体操作不做详述。
三、测试
使用Apache ab做个最简单切有效的测试,其中参数-c并发数10,-n总请求次数1000,命令行如下:
ab -n 1000 -c 10 http://localhost:8080/WebRoot/test.jsp
在我的机器上结果如下(3次平均):
JSP : http://127.0.0.1:8080/WebRoot/test.jsp
(TPR:1.609ms,RPS:609.12,F:0,L:176b)
Sitemesh : http://127.0.0.1:8080/WebRoot/sitemesh/test.jsp
(TPR:2.656ms,RPS:374.27,F:60,L:649b)
Struts2 : http://127.0.0.1:8080/WebRoot/struts2/test.struts2
(TPR:3.406ms,RPS:310.00,F:0,L:204b)
Struts2 + Sitemesh : http://127.0.0.1:8080/WebRoot/sitemesh/test.struts2
(TPR:4.094ms,RPS:224.23,F:252,L:677b)
Spring MVC : http://127.0.0.1:8080/WebRoot/jsp.spring
(TPR:2.828ms,RPS:367.82,F:0,L:204b)
Spring MVC + Tiles 1 : http://127.0.0.1:8080/WebRoot/tiles.spring
(TPR:3.188ms,RPS:313.73,F:900,L:772b)
Spring MVC + Sitemesh : http://127.0.0.1:8080/WebRoot/sitemesh/jsp.spring
(TPR:3.656ms,RPS:273.50,F:104,L:677b)
TPR:每个请求的平均时间(毫秒)
RPS:每秒处理的请求数
F:1000个请求中失败的请求数
L:每个请求得到的数据的长度(字节)
四、结论(如果测试复杂的业务处理,可能结果的差异会比较明显一些)
速度:Spring MVC比Struts2稍快,可能是因为Struts2针对每个请求都创建新的Action对象的缘故。sitemesh与titles的速度基本相当。
稳定性:在不支持模板的情况下,Struts2与Spring MVC的稳定性相当。Tiles比sitemesh的失败率要高出很多。
分享到:
相关推荐
Spring MVC框架,整合了velocity,这个没有用到Hibernate,下一版本会把集成Hibernate
一个Struts2+Spring2.5+SiteMesh的小DEMO,仅供大家做个参考!我也刚学会。欢迎大家多交流!
Struts 2.0提供一个Sitemesh插件,允许在Sitemesh模板中使用Struts标记。 要使用Sitemesh需要包含Freemark,Sitemesh和Sitemesh插件库文件。 配置过滤器 如果需要使用Freemark模板文件作为装饰器文件,需要在web....
struts2-sitemesh-plugin-2.2.1.1.jarstruts2
NULL 博文链接:https://clongjava.iteye.com/blog/1350754
struts2-sitemesh-plugin-2.0.8.jar
struts2-sitemesh-plugin-2.1.6.jar
struts2+sitemesh例子 该例子描述了struts2+sitemesh的配置,比较实用
struts2-sitemesh_入门收集struts2-sitemesh_入门收集
NULL 博文链接:https://takeme.iteye.com/blog/1716488
Struts2+Spring+Hibernate+sitemesh做的一个在线音乐站点写的一个在线音乐 的站点.功能实现的相对比较粗糙(如歌曲列表没考虑分页什么的),另外只能使用IE(使用了ActiveX 控件播放音乐的).
第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...
struts2与sitemesh整合所需的两个最新架包sitemesh-2.4.2,struts2-sitemesh-plugin-2.1.8
struts2-config-browser-plugin-2.3.24.jar, struts2-core-2.3.24.jar, struts2-jasperreports-plugin-2.3.24.jar, struts2-jfreechart-plugin-2.3.24.jar, struts2-pell-...struts2-tiles-plugin-2.3.24.jar,
struts2-sitemesh-plugin-2.1.8.1.jar
解决 java.lang.NoSuchFieldException: DEFAULT_PARAM>问题,下载后替换即可。
一共18个jar包,包括了sitemesh等常用jar包,一般系统都足够了
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-...struts2-sitemesh-plugin-2.5.10.1.jar,struts2-spring-plugin-2.5.10.1.jar,struts2-testng-plugin-2.5.10.1.jarstruts2-tiles-plugin-2.5.10.1.jar等jar包