新客立减

Java MVC

框架性能比较

 

- by zvane 

现在各种

MVC

框架很多,

各框架的优缺点网络上也有很多的参考文章,

但介绍各框架性

能方面差别的文章却不多,

本人在项目开发中,

感觉到采用了

struts2

框架的项目访问速度,

明显不如原来采用了

struts1

框架的项目快,

带着这些疑惑,

我对各类

MVC

框架的做了一个

简单的性能分析比较,其结果应该说是基本符合预期的,可供大家参考。

 

 

测试环境:

CPU

:酷睿

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

页面。

 

 

测试结果:

 

测试工程

 

请求

 

并发数

 

总时

(s) 

总时

(s) 

总时

(s) 

平均

(s) 

Requests Per 

Second(

每秒处

理请求数

JSP 

2000 

200 

5.55  

3.59  

4.11  

4.42  

452.83  

struts1 

2000 

200 

6.77  

3.83  

7.00  

5.86  

341.03  

struts2 JSP 

2000 

200 

25.20  

26.30  24.11  

25.20  

79.35  

struts2 

单例

Action 

2000 

200 

28.36  

27.59  27.69  

27.88  

71.74  

struts2 

多例

Action 

2000 

200 

31.31  

31.97  39.56  

34.28  

58.34  

SpringMVC3 

2000 

200 

7.16  

7.50  

4.27  

6.31  

317.09  

 

说明:

以上测试虽不是非常的精确,但基本能说明一定的问题。每个

JSP

页面和

Action

不包含任何的业务逻辑代码,

只是请求转发。

每轮测试取三次总时间的平均值。

所有工程的

测试均全部完成并正常处理请求,没有请求拒绝情况发生。

 

结论:

 

1.

JSP

的性能应该最高,这不难理解,

JSP

被编译成

Servlet

后,没有任何多余的功能,

收到请求后直接处理。

这也验证一句经典的话:越原始效率就越高。

 

 

2.struts1

的性能是仅次于纯

JSP

的,由于

struts1

采用单例

Action

模式,且本身的封装

相比

struts2

应该说简单很多,虽然开发效率不如

struts2

,但已经过多年的实践考验,性

能稳定高效。