Json序列化性能测试
jopen
9年前
最近对Java 常见的Json库,做了一下性能测试和对比,对比的json 库有:
- Jackson: 目前使用最广泛、社区最活跃的json 库,以性能优异著称,也是SpringMVC 等各种框架默认使用的json 库
- FastJson: Ali 出品的json 库,从名字上也可以看出来,主打的是“快”
- Gson: Google 家的json库,比较轻量,适合Android 使用
- Json-lib: 这个很早出现的json库,实现上更符合json语义。目前已经5年没有更新了,性能也比较差,加入这个性能测试对比主要是用来羞辱还在使用这个库的Javaer们
测试使用中等的数据量,数据是一个Company,其中包括10个Employee,序列化后的string 约1200个字符。
测试环境:
- Java 1.8.0_31 64-Bit
- Jackson 2.5.2
- FastJson 1.2.5
- Gson 2.3.1
- Json-lib 2.1
测试结果如下:
Bean Serialize | Bean DeSerialize | Collection Serialize | Collection DeSerialize | |
Jackson | 6031 | 9347 | 6670 | 11057 |
Fast Json | 6930 | 5396 | 8547 | 9519 |
Gson | 16854 | 14046 | 14049 | 14922 |
Json-Lib | 109310 | 263049 | 97297 | 229826 |
可见:
- Json-lib 毫无疑问的垫底,与其他的性能差距在一个数量级以上
- Jackson 和FastJson 相差不多,Jackson的序列化性能好一些,FastJson的反序列化性能好一些
- Gson 性能相比Jackson 有不小的差距,但还在一个数量级的范围内