Java常用Json库性能对比[L]
2017-07-21 16:45
447 查看
原文:http://www.cnblogs.com/aurain/p/6734873.html
Java常用Json库性能对比
Java对于处理JSON数据的序列化与反序列化目前常用的类库有Gson、FastJSON、Jackson、jettison以及json-lib。在这里我们将对这些类库在json序列化与反序列化方面的性能进行测试对比。
测试环境如下:
电脑:cpu为I3-4160,Win7 64位系统
编译环境:jdk1.8.0_65,Myeclipse2014
各类库版本:gson-2.6.2、fastjson-1.2.8、jackson -2.7.2、jettison-1.3.7(2014年后无更新)、json-lib-2.4(2012年后停止更新)
序列化的简单对象:
publicclass User {
intid;
String name;
intage;
String address;
//get、set
}
测试结果:
序列化测试结果(Object->String),耗时单位均为ms
反序列化测试结果(String->Object),耗时单位均为ms
测试总结:
1、从测试结果可以看出gson在小于10w的数据量处理上,耗时相对较少,但是在数据越来越大的情况下耗时会明显的增长。
2、无论那种情况下,json-lib的耗时都是最多的,引用时还需要额外几个依赖包,且目前已经停止了更新,所以不推荐使用。
3、jackson在各阶段数据量都有很不错的性能,而fastjson在数据量较多的情况下也有很好性能。
4、jettison性能不错,但只提供json和其JSONObject对象相互转化的方法,转为自定义bean时需要再手动将JSONObject对象转为需要的bean。
Java常用Json库性能对比
Java对于处理JSON数据的序列化与反序列化目前常用的类库有Gson、FastJSON、Jackson、jettison以及json-lib。在这里我们将对这些类库在json序列化与反序列化方面的性能进行测试对比。
测试环境如下:
电脑:cpu为I3-4160,Win7 64位系统
编译环境:jdk1.8.0_65,Myeclipse2014
各类库版本:gson-2.6.2、fastjson-1.2.8、jackson -2.7.2、jettison-1.3.7(2014年后无更新)、json-lib-2.4(2012年后停止更新)
序列化的简单对象:
publicclass User {
intid;
String name;
intage;
String address;
//get、set
}
测试结果:
序列化测试结果(Object->String),耗时单位均为ms
测试次数 类库 | 100 | 1K | 1W | 10W | 50W | 100W | 1000W |
gson | 8 | 25 | 63 | 230 | 680 | 1100 | 7790 |
fastjson | 85 | 100 | 155 | 200 | 270 | 350 | 1850 |
jackson | 35 | 48 | 80 | 150 | 255 | 360 | 2400 |
Json-lib | 75 | 130 | 280 | 910 | 2725 | 4900 | 42500 |
jettison | 70 | 85 | 110 | 210 | 400 | 590 | 4000 |
反序列化测试结果(String->Object),耗时单位均为ms
测试次数 类库 | 100 | 1K | 1W | 10W | 50W | 100W | 1000W |
gson | 9 | 21 | 60 | 195 | 570 | 950 | 7760 |
fastjson | 85 | 105 | 150 | 225 | 370 | 545 | 3800 |
jackson | 36 | 50 | 110 | 210 | 380 | 570 | 4460 |
Json-lib | 86 | 185 | 405 | 1180 | 2950 | 4850 | 38300 |
jettison | 6 | 20 | 50 | 230 | 460 | 710 | 4650 |
测试总结:
1、从测试结果可以看出gson在小于10w的数据量处理上,耗时相对较少,但是在数据越来越大的情况下耗时会明显的增长。
2、无论那种情况下,json-lib的耗时都是最多的,引用时还需要额外几个依赖包,且目前已经停止了更新,所以不推荐使用。
3、jackson在各阶段数据量都有很不错的性能,而fastjson在数据量较多的情况下也有很好性能。
4、jettison性能不错,但只提供json和其JSONObject对象相互转化的方法,转为自定义bean时需要再手动将JSONObject对象转为需要的bean。
相关文章推荐
- 常用Java性能测试工具的分析与对比
- 常用Java性能测试工具的分析与对比
- 常用Java性能测试工具的分析与对比
- java序列化框架(protobuf、thrift、kryo、fst、fastjson、Jackson、gson、hessian)性能对比
- 序列化框架性能对比(kryo、hessian、java、protostuff)
- Java应用常用性能分析工具
- java常用集合性能比拼
- 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)
- Java常用排序算法及性能测试集合
- Java的动态性支持学习四 - 反射调用的性能对比
- java list 转 树形json 递归效率对比
- 两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)
- 几个常用JSON组件的性能测试
- Java常用排序算法及性能测试集合
- Excel操作类库最常用到的4种开源项目与MS Excel类库写操作对比分析性能
- python JSON性能测试与simplejson对比
- FastJSON、Gson和Jackson性能对比和共同缺点,注意事项
- groovy性能测试,groovy和java性能对比
- Java解析json常用方式
- java和python常用方法对比