Gson,fastjson,jackson效率测试程序

前端之家收集整理的这篇文章主要介绍了Gson,fastjson,jackson效率测试程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用Gson版本:2.7
fastjson版本:1.2.2 听说后续版本解析map不再使用treemap排序可能效率会有很大提升
jackson版本: 2.8.2
相关jar包在这里:https://github.com/Jinx009/java_bit_program/tree/master/jar

测试程序如下(代码不一定高准确,仅供个人娱乐使用)

  1. package jinx.json.compare;
  2.  
  3. import com.alibaba.fastjson.JSON;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.google.gson.Gson;
  6. import org.codehaus.jackson.map.ObjectMapper;
  7.  
  8. import java.util.Date;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11.  
  12. /** * Created by jinx on 7/17/17. */
  13. public class JsonTest {
  14.  
  15. public static void main(String[] args) throws Exception {
  16.  
  17. Map<String,String> map = new HashMap<String,String>();
  18. for (int i = 0; i < 100; i++) {
  19. Date date = new Date();
  20. map.put(date.toLocaleString() + i,date.toLocaleString());
  21. }
  22. long startTimestamp = System.currentTimeMillis();
  23. Gson gson = new Gson();
  24. gson.toJson(map);
  25. System.out.println("gson 消耗:" + (System.currentTimeMillis() - startTimestamp));
  26. long startTimestamp2 = System.currentTimeMillis();
  27. JSON.toJSONString(map);
  28. System.out.println("fastjson 1消耗:" + (System.currentTimeMillis() - startTimestamp2));
  29. long startTimestamp3 = System.currentTimeMillis();
  30. JSONObject.toJSONString(map);
  31. System.out.println("fastjson 2消耗:" + (System.currentTimeMillis() - startTimestamp3));
  32. long startTimestamp4 = System.currentTimeMillis();
  33. ObjectMapper mapper = new ObjectMapper();
  34. mapper.writeValueAsString(map);
  35. System.out.println("jackson 消耗:" + (System.currentTimeMillis() - startTimestamp4));
  36. }
  37.  
  38. }

以下是不同数据量的速度比较:
200万循环下(可能由于机器性能,200万数据可能有偏差):
gson 消耗:2154
fastjson 1消耗:2880
fastjson 2消耗:1679
jackson 消耗:1886

gson 消耗:2202
fastjson 1消耗:2888
fastjson 2消耗:1762
jackson 消耗:1917

100万循环下:
gson 消耗:362
fastjson 1消耗:1161
fastjson 2消耗:833
jackson 消耗:400

gson 消耗:373
fastjson 1消耗:1140
fastjson 2消耗:838
jackson 消耗:402

gson 消耗:379
fastjson 1消耗:1137
fastjson 2消耗:892
jackson 消耗:477

10万循环下:
gson 消耗:148
fastjson 1消耗:393
fastjson 2消耗:104
jackson 消耗:187

gson 消耗:146
fastjson 1消耗:402
fastjson 2消耗:101
jackson 消耗:188

1万循环下
gson 消耗:114
fastjson 1消耗:298
fastjson 2消耗:30
jackson 消耗:219

gson 消耗:94
fastjson 1消耗:294
fastjson 2消耗:26
jackson 消耗:164

gson 消耗:106
fastjson 1消耗:327
fastjson 2消耗:29
jackson 消耗:212

100循环下:
gson 消耗:67
fastjson 1消耗:253
fastjson 2消耗:2
jackson 消耗:216

gson 消耗:61
fastjson 1消耗:259
fastjson 2消耗:2
jackson 消耗:160

gson 消耗:67
fastjson 1消耗:240
fastjson 2消耗:1
jackson 消耗:154

由于数据量有限,机器性能有限,只获取了一个结论,小数据使用fastjson的jsonobject转换效率是最高的,

猜你在找的Json相关文章