集中Rest结构实现性能对比分析
来源:互联网 发布:淘宝和天猫质量一样吗 编辑:程序博客网 时间:2024/05/29 17:37
测试用例
初始化数据:
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
- 集中Rest结构实现性能对比分析
- java rmi 与 spring mvc rest 性能简单对比
- java性能分析工具对比
- 日志系统性能对比分析
- hbase性能测试对比分析
- 分析对比主流Bootloader的性能
- 分析对比主流Bootloader的性能
- TFS,FastDFS性能对比与分析
- list 、set 、map 粗浅性能对比分析
- list 、set 、map 粗浅性能对比分析
- SQL 查询语句性能对比分析
- Memcached Redis Membase性能测试对比分析
- Java性能分析工具的对比
- nginx与apache详细性能对比分析
- Memcached Redis Membase性能测试对比分析
- 深度学习框架性能对比分析
- rails 的 REST 结构和 route 代码分析
- 号码集中度分析法的PL/SQL实现
- struts2框架学习总结
- svn和git简单使用
- CentOS ,Scientific Linux开机打开小键盘
- Objective C KVC编程
- C# 关于开发控件,如何自定义属性归类
- 集中Rest结构实现性能对比分析
- Qt——web网页和本地对象的交互
- 12个C语言面试题
- 中美俄朝韩五国中学教科书如何描述朝鲜战争?(震撼)
- 12个C语言面试题part2
- 玩儿了一会儿蚂蚁~太好玩儿啦
- XMU1316.卡车装货以及1345.机器的指示灯 垃圾水题 给我的反思 又犯了一次
- 多文件上传。。。。
- 现在的大学生活