Json序列化性能测试

jopen 4年前

最近对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 有不小的差距,但还在一个数量级的范围内

原文链接: http://dongliu.net/post/622456