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。
最新文章
- RDLC An unexpected error occurred while compiling expressions. Native compiler return value: '-1073741511'
- 执行gem install linne时报错
- 【转】安装OpenSSL缺失Microsoft Visual C++ 2008 Redistributables的解决方案
- C编译: 动态连接库 (.so文件)
- SQL——存储过程实例 循环
- C#之事件初步
- windows的路由例子
- cal命令详解与练习
- 安装Scala-2.11.7——集群学习日记
- Maven的pom.xml文件详解------Build Settings
- Linux第四节 组管理、用户管理、权限管理 / chmod /chown / umask / vim
- don\'t have permission access on this server听语音
- django中form页面刷新后自动提交的解决方案
- Springboot jar包外指定配置文件及原理
- Spring Cloud(Dalston.SR5)--Hystrix 断路器-合并请求
- [Jmeter] Jmeter Plugins
- MyEclipse 2014 for Mac 在Yosemite怎樣安裝
- linux添加计划任务
- Java并发编程原理与实战十:单例问题与线程安全性深入解析
- 《R语言入门》语言及环境简单介绍
热门文章
- Android 生成xml文件及xml的解析
- CFD
- PHP_$_SERVER中QUERY_STRING,REQUEST_URI的用法
- day_01 python基础 基本数据类型 if条件
- server 2012 R2查询端口
- javascript中构造函数与普通函数的区别还有关于“new”操作符的一些原理
- Zookeeper概念学习系列之zookeeper是什么?
- 案例45-crm练习改写客户列表使用struts2&;OGNL
- [實現DDD] 第10章 聚合(1)設計原則
- 用R处理不平衡的数据