`

Java MVC框架性能比较 jsp、struts1、struts2、springmvc3

    博客分类:
  • java
阅读更多

现在各种MVC框架很多,各框架的优缺点网络上也有很多的参考文章,但介绍各框架性能方面差别的文章却不多,本人在项目开发中,感觉到采用了struts2框架的项目访问速度,明显不如原来采用了struts1框架的项目快,带着这些疑惑,我对各类MVC框架的做了一个简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考。

 

测试环境:CPU:酷睿2 T5750,内存:DDR2-667 2G,Web容器:Tomcat6.0,最大线程数设置为1000,操作系统:WinXP-sp3

测试步骤:搭建6个Web工程,如下:

1.纯JSP:不包含任何MVC框架,只有一个测试用的JSP页面。

2.struts1:包含一个Action,不做任何逻辑处理,直接转发到一个JSP页面

3.struts2 JSP:不包含Action,只包含测试JSP页面,直接访问该页面。

4.struts2 单例Action:采用Spring来管理Struts2的Action实例,并配置成单例模式。

5.struts2 多例Action:采用Spring来管理Struts2的Action实例,并配置成单例模式。

6.SpringMVC3:采用Spring来管理Controller实例,包含一个Controller,不做逻辑处理,收到请求后,直接返回到一个JSP页面。

通过测试

 

说明:以上测试虽不是非常的精确,但基本能说明一定的问题。每个JSP页面和Action都不包含任何的业务逻辑代码,只是请求转发。每轮测试取三次总时间的平均值。所有工程的测试均全部完成并正常处理请求,没有请求拒绝情况发生。

结论:

 

1.纯JSP的性能应该最高,这不难理解,JSP被编译成Servlet后,没有任何多余的功能,收到请求后直接处理。(这也验证一句经典的话:越原始效率就越高。)

 

2.struts1的性能是仅次于纯JSP的,由于struts1采用单例Action模式,且本身的封装相比struts2应该说简单很多,虽然开发效率不如struts2,但已经过多年的实践考验,性能稳定高效。

 

3.相比来说struts2的性能就比较差了,这不难理解,struts2之所以开发方便,是由于采用值栈、OGNL表达式、拦截器等技术对请求参数的映射和返回结果进行了处理,另外还采用大量的标签库等,这些都无疑增加了处理的时间。因此降低了效率。在我们实际的项目中,我测试本地工程访问每秒处理请求数只能达到35左右,应该说还有不少可优化的空间。

 

4.很多人认为struts2性能差是因为它的多例Action模式导致的,但我们采用spring管理struts2的Action,并设置按单例方式生成Action实例后,发现其性能有所提高,但并不是很明显。由此可见,多例Action模式并不是struts2性能瓶颈所在。另外,我们在 struts2中采用JSP方式访问,发现其性能依旧和没有采用任何MVC框架的纯JSP之间存在好几倍的差距,这又从另一个侧面证实了我们刚才得出结论,struts2性能的瓶颈不在于它的多例Action模式。

 

5.SpringMVC3的性能略逊于struts1,但基本是同级别的,这让人眼前一亮,springMVC有着不比struts2差的开发效率和解耦度,但性能却是struts2的好几倍,这让我们灰常振奋,SpringMVC无疑又是项目开发的一个好的选择。唯一的问题就是,目前国内使用面还不太多,各方面的参考资料相对较少,上手的话可能要稍微难点。

分享到:
评论

相关推荐

    整合mvc和struts的jsp框架

    一个基于jsp应用于网站开发的简单的框架

    spring mvc 框架示例

    使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...

    jsp + servlet + javaben实现springmvc

    1. jsp + servlet + javaben实现springmvc。代码结构清晰,可学习或者重新定制开发。 2. 项目具有详细的开发文档说明,环境配置说明,亲测可运行。 3. 系统说明 3.1 系统介绍 MVC是一种软件架构的思想, 将软件按照...

    java经典框架springmvc+mybatis

    1>Java基础: Java原理和使用,包括基本的语言、语法知识和API JSP+Servlet,Java Web开发的基础 这方面可以关注Java开发基础专题。 2>服务器: WebLogic的原理、使用和配置 Tomcat:轻量的JavaWeb容器,和...

    ssh springMvc,jquest easyUI多视图、多数据源开发框架源码

    sprinvMVC 多视图支持,velcotity,freemark,jsp,html 都同时可以支持,并且还支持多数据源。十余你开发经验的技术总监历时3个月完成

    [其他类别]Struts+Hibernate实现MVC_strutsmvc.zip

    这个项目是一个基于Java语言开发的Web应用程序,采用SSM(Spring+SpringMVC+MyBatis)或SSH(Spring+SpringMVC+Hibernate)框架进行开发,使用MySQL作为数据存储,JSP作为页面开发。 项目的目标是构建一个高效、可靠...

    SpringMVC教程

    使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...

    SpringMVC入门实例及详细讲解

    使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...

    springMVC入门教程

    可以选择是使用内置的Spring Web 框架还是Struts 这样的Web 框架。通过策略接口,Spring 框架是 高度可配置的,而且包含多种视图技术,例如JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC...

    SpringMVC (hello)源码包

    使用Spring 可插入的MVC 架构,可以选择是使用内置的Spring Web 框架还是Struts 这样的Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如JavaServer Pages(JSP)技术、Velocity、...

    Java代码生成工具(傻瓜式操作无需教程的代码生成工具) v2.0.zip

    支持struts1、struts2、springmvc、spring、hibernate3框架。  支持自增主键,复合主键,外键关联。  生成hibernate pojo类,dao类,service类,action类。  生成保存,删除,修改,批量保存,批量修改,批量...

    springmvcdemo

    使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题51.SpringMVC和Struts2的不同.mp4 │ Java面试题52.简单介绍一下Spring或者Spring的两大核心.mp4 │ Java面试题53.AOP是什么?都用它做什么?.mp4 │ Java面试题54.Spring事务的传播特性和隔离级别.mp4...

    JAVA开发工程师简历

    熟练使用spring,struts2,hibernate,springmvc,mybatis,springboot等架构的以及各相互间的整合开发(ssh,ssm),配置及对象的设计和开发。 对redis缓存,ActionMQ消息队列有一定的了解使用。 熟练使用jsp、servlet、...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题51.SpringMVC和Struts2的不同 Java面试题52.简单介绍一下Spring或者Spring的两大核心 Java面试题53.AOP是什么?都用它做什么? Java面试题54.Spring事务的传播特性和隔离级别 Java面试题55.ORM是什么?ORM...

    spring、hibernate后台框架及前台技术

    框架使用spring、hibernate作为后台技术,使用spring mvc强大功能替换struts处理,前台使用jquery组件各种显示效果 美观,框架搭建成熟,含 过滤器、国际化等。杜绝劣质代码,只提供优质源码!

    基于java+ssm博客系统的设计与实现+vue.zip

    博客系统采用的开发框架为SSM框架,也就是Spring mvc、Spring、MyBatis这三个框架,页面设计用的是jsp技术作为动态页面文件设计,jsp文件里可以对实现html等界面布局的代码,采用SpringMVC替代传统的struts2框架,...

    毕业设计: Java项目之基于ssm021博客系统的设计与实现+vue (源码 + 数据库)

    系统采用的开发框架为SSM框架,也就是Spring mvc、Spring、MyBatis这三个框架,页面设计用的是jsp技术作为动态页面文件设计,jsp文件里可以对实现html等界面布局的代码,采用SpringMVC替代传统的struts2框架,主要...

    java求职简历

    2. 熟练运用Servlet、Struts、Hibernate、Spring、Springmvc、Mybaits、SSH框架等技术。 3. 熟练运用JavaScript、Css、Jsp、Html、 Ajax、Xml、Jquery、Json等相关技术。 4. 掌握主流的数据库的相关知识,熟练使用...

    博客系统-java-基于ssm博客系统的设计与实现+vue(毕业论文)

    博客系统采用的开发框架为SSM框架,也就是Spring mvc、Spring、MyBatis这三个框架,页面设计用的是jsp技术作为动态页面文件设计,jsp文件里可以对实现html等界面布局的代码,采用SpringMVC替代传统的struts2框架,...

Global site tag (gtag.js) - Google Analytics