初始化数据: |
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 |