您的位置:首页 > 其它

集中Rest结构实现性能对比分析

2012-09-07 23:45 351 查看
测试用例

初始化数据:

Customer对象具有id、name两个属性,初始化13个对象的map,以id为key

测试输入输出:

对服务提交get请求,去Customer对象列表。

测试注意:

除各实现要求的必须差别外,开发中保证代码对Customer的操作是完全一致的。减少因操作不一致造成的性能差异。

测试步骤:

1. 针对不同实现,分别搭建独立的Tomcat服务器,保证服务器的资源配置相同。

2. 针对每个实现,通过客户端多线程访问服务器,测试多线程同时访问服务器且全部返回正确的极限值。

3. 使用得出的极限值进行3次测试,每次要求重新启动Tomcat服务,记录测试结果,其中服务器内存使用记录要求包括:启动Tomcat但未访问服务前

、服务访问后以及在访问服务的过程中3次随机截取的内存使用情况。

4. 使用较小的并发数量,长时间对每个实现分别进行测试,测试服务的稳定性。要求时间大于3小时,并发量大于30线程。

测试环境:

Servlet容器信息:

Tomcat

版本

6.0.29

内存分配

初始内存

Tenured 10.69Mb

Perm 12Mb

Total 49.66Mb

最大内存

Tenured 170.69Mb

Perm 64Mb

Total 365.5Mb

项目版本:

Apache CXF

2.3.1

Jersey

1.5

RESTEasy

2.1

Restlet

Java EE 2.0.4

测试工具:

JMeter

2.4

(客户端压力)

Probe

1.7b

(Tomcat内存监控)
线程
线程间隔
循环次数
平均值
最小值
最大值
吞吐量/秒
流量(KB/秒)
说明
index测试
500
0
100
线程循环中断,大压力下,tomcat仍然能够返回,证明瓶颈不发生在tomcat端
cxf get 测试
cxf运行瓶颈测试
130
0
100
线程循环中等情况下,最大线程压力
cxf第一次资源消耗测试
100
0
300
449
4
8438
197.9
64.6
cxf第二次资源消耗测试
100
0
300
425
4
10519
204.3
66.6
cxf第三次资源消耗测试
100
0
300
451
5
9082
196.3
64
jersey get 测试
jersey运行瓶颈测试
250
0
100
速度快于cxf,资源消耗小于cxf
jersey第一次资源消耗测试
100
0
300
76
1
6359
877.3
619.4
吞吐量未达到极限
jersey第二次资源消耗测试
100
0
300
112
1
8298
712
502
jersey第三次资源消耗测试
100
0
300
129
1
6281
623.2
440
Resteasy get 测试
Resteasy运行瓶颈测试
无法测试,800线程,300次循环无错误
效率高于Jersey,内存消耗也大于Jersey
Resteasy第一次资源消耗测试
100
0
300
67
1
7870
713.3
505
并未达到极限,与更多线程的吞吐量极限差距较大,最大到1400
Resteasy第二次资源消耗测试
100
0
300
97
1
9288
804.9
569.9
Resteasy第三次资源消耗测试
100
0
300
96
1
11398
808.2
572.2
Restlet get 测试
Restlet运行瓶颈测试
100
0
100
性能最差的实现
Restlet第一次资源消耗测试
80
0
100
488
6
8619
148.3
221.7
Restlet第二次资源消耗测试
80
0
100
557
6
7815
131.2
196.2
Restlet第三次资源消耗测试
80
0
100
558
6
9562
130.7
195.4
稳定性测试
cxf稳定性测试
50
1小时以上
239
1
8482
207.8
67.8
jersey 稳定性测试
50
0
1小时以上
37
1
10536
1052.5
743.1
Resteasy稳定性测试
50
0
1小时以上
41
1
10381
1170.8
829
Restlet稳定性测试
50
0
1小时以上
342
6
13967
145.6
217.7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: