`
zhaoshg
  • 浏览: 259624 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2, Spring MVC, Sitemesh, Tiles 性能比较

阅读更多
(本文出自 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的失败率要高出很多。
分享到:
评论

相关推荐

    使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh

    标题中的“使用sitemesh替换tiles2,spring mvc+spring web flow+sitemsh”指出了一种在Spring MVC和Spring Web Flow项目中用Sitemesh替代Tiles2作为页面布局工具的技术实践。Sitemesh和Tiles2都是用于创建可重用的...

    struts2+spring2+hibernate3+velocity+sitemesh集成框架代码

    Struts2、Spring2、Hibernate3、Velocity和Sitemesh是经典的Java Web开发框架组合,它们各自在Web应用的不同层面提供了强大的支持。这个集成框架代码集合了这些技术,旨在提供一个高效、灵活和可扩展的开发环境。 1...

    struts2+spring +hibernate 整合应用实现用户登陆。

    Spring还提供了事务管理、数据访问集成、MVC框架等功能,与Struts2整合可以实现更强大的控制层和业务层支持。 3. **Hibernate** Hibernate是一个ORM(Object-Relational Mapping,对象关系映射)框架,它简化了...

    struts2学习整理

    Struts2具有丰富的特性,如注解和XML配置选项,与Spring、SiteMesh、Tiles的集成,以及OGNL表达式语言的支持,还提供了Ajax和主题相关的标签库。 与Struts1相比,Struts2在Action类的设计上有显著区别。Struts1要求...

    struts2知识总结

    Struts2拥有活跃的开发者和用户社区,支持注解和XML配置,Action基于POJO,易于测试,并能与Spring、SiteMesh和Tiles等框架集成。OGNL(Object Graph Notation Language)是Struts2中的表达式语言,用于数据绑定和...

    北大青鸟struts2教程

    Struts2拥有一个活跃的开发者社区,支持Annotation和XML配置,提供与Spring、SiteMesh和Tiles的集成,以及与OGNL(Object-Graph Navigation Language)表达式语言的融合。此外,它还包含基于主题的标签库和Ajax支持...

    Struts2 in action中文版

    1.3.2 Struts 2概览:MVC模式 10 1.3.3 Struts 2的工作原理 12 1.4 小结 14 第2章 初识Struts 2 16 2.1 声明性架构 16 2.1.1 两种配置 16 2.1.2 声明架构的两种方式 17 2.1.3 智能默认值 20 2.2 简单的HelloWorld...

    北大青鸟struts2.0培训基础教程

    6. **集成性**:Struts2可以与Spring、SiteMesh和Tiles等其他框架无缝集成,提高开发效率。 7. **OGNL集成**:OGNL(Object-Graph Navigation Language)是Struts2中的默认表达式语言,提供了强大的数据访问和操作...

    struts2 原理简介

    4. **与第三方库集成**:Struts2能够无缝集成Spring框架,SiteMesh用于页面布局,Tiles用于视图管理,以及OGNL(Object-Graph Navigation Language)作为表达式语言。 5. **强大的标签库**:Struts2提供了基于主题...

    struts2 PPT教程

    4. **与第三方框架的集成**:Struts2可以与Spring、SiteMesh和Tiles等框架无缝集成,增强了应用程序的功能和可扩展性。 5. **OGNL集成**:使用OGNL(Object-Graph Navigation Language)作为表达式语言,提高了数据...

    springmvc学习demo

    2. **标签库**:Spring MVC 支持 JSTL(JavaServer Pages Standard Tag Library)和其他自定义标签库,如 Tiles 或 Struts Tags。这些标签库可以简化视图层的开发,提供重用和维护性。例如,JSTL 中的 fmt 和 c 标签...

    Struts2.1.8培训资料(推荐)

    4. **集成性**:Struts2可以与Spring框架无缝集成,同时支持SiteMesh(布局管理)和Tiles(页面组装),并提供了与OGNL(Object-Graph Navigation Language)表达式的集成,用于数据绑定和表达式计算。 5. **视图技术...

    strust2 ppt

    在实际应用中,Struts2还支持各种插件,如SiteMesh用于页面布局,Tiles用于视图管理,以及国际化和数据校验等功能。开发者还可以自定义拦截器,以满足特定的业务需求。 总的来说,Struts2提供了更强大、更灵活的MVC...

    使用myEclipse进行struts开发

    Struts2提供了丰富的标签库(Tiles、Sitemesh等),使得JSP页面的编写更加简洁和规范。 7. **使用Struts2标签** Struts2提供了一系列的标签,如`s:textfield`用于输入字段,`s:submit`用于提交按钮,`s:action...

    271个java需要用的jar包

    struts2-sitemesh-plugin-2.3.15.3.jar struts2-spring-plugin-2.3.15.3.jar struts2-struts1-plugin-2.3.15.3.jar struts2-testng-plugin-2.3.15.3.jar struts2-tiles-plugin-2.3.15.3.jar struts2-tiles3-plugin-...

    Webwork教程

    3. **Comparisonto Spring MVC**:虽然两者都支持MVC架构,但Spring MVC更加灵活,提供了更多的选项。 4. **Comparisonto Struts**:与第一代Struts相比,WebWork/Struts2具有更好的扩展性和灵活性。 5. **...

    Java的Struts框架简介与环境配置教程

    4. **易整合性**:Struts2可以轻松地与Spring、Tiles、SiteMesh等其他框架集成,增强了系统的扩展性。 5. **模板支持**:支持多种模板技术,如JSP、Freemarker、Velocity和XSLT,开发者可以根据需求选择合适的视图...

Global site tag (gtag.js) - Google Analytics