springmvc和struts2比struts好在哪里

推荐这篇日记的豆列
······用测试来对比分析struts与springMVC的性能-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
用测试来对比分析struts与springMVC的性能
来源:互联网 更新时间: 4:35:15 责任编辑:王亮字体:
??? 这篇帖子应该发布在一个月前,因为iteye的发帖机制调整,问答积分的限制把俺堵在了大门外。??? 写这篇文章是因为个人一直存在一些疑问:??? a. struts的性能到底怎么样???? b. springMVC相比struts高多少???? 我这个人呢,有个缺点――――总是要看到数据才甘心。可能是专家们被忽悠太多次,以至于心里有阴影了,嘿嘿。
2 测试准备
??? 2.1 测试工具:apache ab(简单实用,load runner就不搞了)??? 2.1 系统环境:OS: Red Hat EL 5(64bit),? CPU: Intel Xeon EGHz(单颗4核cpu),? Mem: 4G??? 2.2 软件环境:Tomcat 6.0.23, jdk 1.6.0_23, Struts2.2.3测试用war包, SpingMVC3.0.5测试用war包。??????? 2.2.1 tomcat jvm参数仅调整了堆大小为2G:JAVA_OPTS="$JAVA_OPTS -server -Xms2048M -Xmx2048M"??????? 2.2.2 测试的代码是从url简单传入1个参数,经过mvc的处理后渲染成html页面
3 测试过程
??? 3.1 部署两个war包到同一个tomcat下??? 3.2 预热测试,先跑两次测试进行预热,已使结果更稳定??? 3.3 通过浏览器请求拿到两个JSESSIONID以备使用,使用包含JSESSIONID的cookie,可以排除每次重新生成session造成的影响。??? 3.4 测试并记录结果
4 测试结果
??? 4.1? ab参数 ab -n 10000 -c 10 ??????????? RPS每秒处理的请求数 ??? TPR平均响应时间(毫秒) ??????????? struts2.2.3 spring3.0.5 ??? struts2.2.3 spring3.0.5??? 第一次 4308 ??? 6439 ??????? 2.321 ??? 1.553??? 第二次 4150 ??? 5873 ??????? 2.409 ??? 1.703??? 第三次 3904 ??? 6389 ??????? 2.561 ??? 1.565??? 平均值 4121 ??? 6234 ??????? 2.430 ??? 1.607 ??? 4.2? ab参数 ab -n 10000 -c 10? -C JSESSIONID=XXXXXXXXXX ??????????? RPS每秒处理的请求数 ??? TPR平均响应时间(毫秒) ??????????? struts2.2.3 spring3.0.5 ??? struts2.2.3 spring3.0.5??? 第一次 3803 ??? 6560 ??????? 2.629 ??? 1.524??? 第二次 4221 ??? 6965 ??????? 2.369 ??? 1.436??? 第三次 4180 ??? 6683 ??????? 2.392 ??? 1.496??? 平均值 4068 ??? 6736 ??????? 2.463 ??? 1.485
5 结果分析
??? 5.1 从TPS上看,sping比struts吞吐量高66%??? 5.2 从TPR上看,sping比struts响应速度高40%??? 5.3 我们根据TPR和TPS的数据得出如下坚定的结论:“大家尽可能的用spring吧,springMVC比struts快50%以上!”
6 个人见解
??? 我们真的能从测试结果得出“sping比struts吞吐量高66%;响应速度高40%;springMVC比struts快50%以上”的结论吗???? 在整理好结果的第一个小时内,我也是这么认为的,但是我总觉得有不妥之处,以至于后来我推翻了自己之前的想法,原因其实很简单――――我们选择了错误的测试用例。??? 测试case只需要极其简单的运算,没有其他消耗系统资源的操作(比如db的存取):??? http://127.0.0.1:8080/struts2/example/hello-world.action?name=name??? http://127.0.0.1:8080/spring3/example?name=name??? 对于这么简单的运算,struts及sping约等于空转状态,这个测试能得出的结果是”springMVC与struts的空转响应时间是1.5和2.5毫秒“。??? 由此得出:如果我们的系统本身的响应时间超出300毫秒,那么采用springMVC与struts的任一个框架,对性能的影响都在1%左右。对于一个不是要求响应在10毫秒以内的系统,采用springMVC或者struts不会有本质的性能区别。
欢迎直接指出问题.ps:拒绝人身攻击(程度较轻可忽略).
test-data-jsessionid.zip (1.8 KB)
下载次数: 18
spring3.zip (6 KB)
下载次数: 17
struts2.zip (4.8 KB)
下载次数: 16
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号SpringMVC与其它的WebMVC框架最大的区别是什么,我们该如何选择WEB框架?-java-电脑编程网SpringMVC与其它的WebMVC框架最大的区别是什么,我们该如何选择WEB框架?作者:liu_xiaohua 和相关&&Spring MVC 与其它的 Web MVC 框架 最大的区别是什么,我们该如何选择WEB 框架?用过 Spring MVC 或 其它WEB MVC 框架 的朋友可以来谈谈。------回答---------------回答(50分)---------2年前一直用Struts。后来用webwork做过一个。最近一直用Spring。给我最直接的印象是:Struts的优点1、表现层标签是个好东西。jstl和struts的配合最好。2、控制层的取form和validate很直观。servlet和struts的配合也不错。webwork的优点1、interceptor是最大的优势,这个东东不仅仅是验证用,玩好可以减轻大量的编码工作。2、别的方面和Struts差不多。Spring的优点1、不能算单纯的m,要与别的配合用才能起到m的最好效果。2、与hibernate配合起来,能感受到纯对象的操作。3、与别的框架配合是Spring的最大优点。4、控制反转对重构项目很有作用,如果你积累了足够的Spring功能代码,那做一个新项目也就是美工和写配置文件的工作。Spring的缺点:杂而不精,所有的技术都有涉及,但都不太好用,要与别的配合才能达到做好的效果。除了控制反转(PS:确实好用)Spring是做的最好的,别的都太简单。概括的说:1、追求项目的速度||你的程序员都是新手,struts是你最好的选择。2、特殊而且复杂的功能组合,那么webwork的interceptor会帮你搞定。不过技术难度比struts稍大,看你手下的水平了。3、追求完美的设计||最大的重用性,Spring会帮助你。不过难度也是最大的,你要考虑好。
------回答(50分)---------spring+struts+hibernatespring最大的能力是整合框架,对其他的框架做统一的管理,而不是做具体业务!spring做整合控制+struts业务表现+hiberbate做持久spring的ioc编程能做到最大的解耦合,以前当要引用别的class的实力时,往往是自己去new一个对象,然后编码到具体代码中,而现在有了spring通过配置文件的方式由spring容器帮你控制对象的注入(就是8楼说的控制反转)!spring的aop面向行切面的编程也是不可多得的!尝试过给一个未知的类添加新的方法么?这在别的地方是绝对不可能的,但是在spring的框架中这些都得到了很好的实现,新的业务方法称为切面,通过ioc配置和具体类结合,完美无缺!把struts的action交由spring控制,它和hibernate、jdbc的的实现部份都由spring做到了完美的结合(还是ioc),尤其是对事务的控制简直简单,用ejb的方式,通过对方法添加具体标注就做到了对事务的控制,简直是神奇!spring不是具体的web框架了,而是像个大管家,最大的是让个部分称为独立的部分,最大的解耦合!
------回答---------------回答(50分)---------
2年前一直用Struts。后来用webwork做过一个。最近一直用Spring。给我最直接的印象是:Struts的优点1、表现层标签是个好东西。jstl和struts的配合最好。2、控制层的取form和validate很直观。servlet和struts的配合也不错。webwork的优点1、interceptor是最大的优势,这个东东不仅仅是验证用,玩好可以减轻大量的编码工作。2、别的方面和Struts差不多。Spring的优点1、不能算单纯的mvc,要与别的配合用才能起到mvc的最好效果。2、与hibernate配合起来,能感受到纯对象的操作。3、与别的框架配合是Spring的最大优点。4、控制反转对重构项目很有作用,如果你积累了足够的Spring功能代码,那做一个新项目也就是美工和写配置文件的工作。Spring的缺点:杂而不精,所有的技术都有涉及,但都不太好用,要与别的配合才能达到做好的效果。除了控制反转(PS:确实好用)Spring是做的最好的,别的都太简单。概括的说:1、追求项目的速度||你的程序员都是新手,struts是你最好的选择。2、特殊而且复杂的功能组合,那么webwork的interceptor会帮你搞定。不过技术难度比struts稍大,看你手下的水平了。3、追求完美的设计||最大的重用性,Spring会帮助你。不过难度也是最大的,你要考虑好。
------回答(50分)---------
spring+struts+hibernatespring最大的能力是整合框架,对其他的框架做统一的管理,而不是做具体业务!spring做整合控制+struts业务表现+hiberbate做持久spring的ioc编程能做到最大的解耦合,以前当要引用别的class的实力时,往往是自己去new一个对象,然后编码到具体代码中,而现在有了spring通过配置文件的方式由spring容器帮你控制对象的注入(就是8楼说的控制反转)!spring的aop面向行切面的编程也是不可多得的!尝试过给一个未知的类添加新的方法么?这在别的地方是绝对不可能的,但是在spring的框架中这些都得到了很好的实现,新的业务方法称为切面,通过ioc配置和具体类结合,完美无缺!把struts的action交由spring控制,它和hibernate、jdbc的的实现部份都由spring做到了完美的结合(还是ioc),尤其是对事务的控制简直简单,用ejb的方式,通过对方法添加具体标注就做到了对事务的控制,简直是神奇!spring不是具体的web框架了,而是像个大管家,最大的是让个部分称为独立的部分,最大的解耦合!
相关资料:|||||||SpringMVC与其它的WebMVC框架最大的区别是什么,我们该如何选择WEB框架?来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 struts springmvc 的文章

 

随机推荐