zoukankan      html  css  js  c++  java
  • FastJSON、Gson和Jackson性能对比

    Java处理JSON数据有三个比较流行的类库FastJSON、Gson和Jackson。本文将测试这三个类库在JSON序列化和反序列化的方面表现,主要测试JSON序列化和反序列化的速度。为了防止由于内存导致测试结果出现偏差,测试中对JVM内存配置-Xmx4g -Xms4g。

    JSON序列化(Object => JSON)

    测试样本数量为100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本Java对象保存在文件中。每个类库测试3次,每次循环测试10遍,去掉最快速度和最慢速度,对剩下的8遍求平均值作为最终的速,取3次测试中最好的平均速度作为最终的测试数据。

    类库样本数量执行次数最长时间(毫秒)最短时间(毫秒)平均时间(毫秒)
    FastJSON 100000 10 2291.22 1416.70 1454.93
    Jackson 100000 10 1980.92 841.91 880.82
    Gson 100000 10 2383.02 1469.08 1520.38

    从测试数据可知,FastJSON和GsonJSON序列化的速度差不多,Jackson是最快的(用时Gson少大约600毫秒)。

    JSON反序列化(JSON => Object)

    测试样本数量为100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本JSON对象保存在文件中。每个类库测试3次,每次循环测试10遍,去掉最快速度和最慢速度,对剩下的8遍求平均值作为最终的速,取3次测试中最好的平均速度作为最终的测试数据。

    类库样本数量执行次数最长时间(毫秒)最短时间(毫秒)平均时间(毫秒)
    FastJSON 100000 10 7942.31 6340.55 6526.41
    Jackson 100000 10 7957.22 6623.85 6815.41
    Gson 100000 10 8235.15 7006.06 7364.75

    从测试数据可知,三个类库在反序列化上性能比较接近,Gson稍微差一些。

    总结

    把Java对象JSON序列化,Jackson速度最快,在测试中比Gson快接近50%,FastJSON和Gson速度接近。 
    把JSON反序列化成Java对象,FastJSON、Jackson速度接近,Gson速度稍慢,不过差距很小。

     

  • 相关阅读:
    PAT Advanced 1044 Shopping in Mars (25) [⼆分查找]
    PAT Advanced 1029 Median (25) [two pointers]
    PAT Advanced 1010 Radix(25) [⼆分法]
    PAT Basic 1070 结绳(25) [排序,贪⼼]
    PAT Basic 1023 组个最⼩数 (20) [贪⼼算法]
    PAT Basic 1020 ⽉饼 (25) [贪⼼算法]
    PAT Advanced 1070 Mooncake (25) [贪⼼算法]
    PAT Advanced 1067 Sort with Swap(0,*) (25) [贪⼼算法]
    PAT Advanced 1038 Recover the Smallest Number (30) [贪⼼算法]
    PAT Advanced 1037 Magic Coupon (25) [贪⼼算法]
  • 原文地址:https://www.cnblogs.com/felixzh/p/8551796.html
Copyright © 2011-2022 走看看