欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

json序列化和反序列化性能测试报告

Java Web water 5481℃ 0评论

json序列化和反序列化性能

一、      测试环境

Eclipse+maven+JUnit

二、      测试思路

分两种情况测试观察效率

  1. 区分简单对象和复杂数组对象测试性能
  2. 调节对象数量测试性能

三、      简单(单一)对象测试

转化对象数量(1个)结果

<<TestJacksonImpl>>—>ObjectToJson cnt:1>>>>Time:65

<<TestJacksonImpl>>—>JsonToObject cnt:1>>>>Time:40

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:1>>>>Time:10

<<TestGsonServiceImpl>>—>JsonToObject cnt:1>>>>Time:3

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:1>>>>Time:160

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:1>>>>Time:13

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:1>>>>Time:131

<<TestFastJsonImpl>>—>JsonToObject cnt:1>>>>Time:31

 

转化对象数量(100个)结果

<<TestJacksonImpl>>—>ObjectToJson cnt:100>>>>Time:79

<<TestJacksonImpl>>—>JsonToObject cnt:100>>>>Time:57

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100>>>>Time:16

<<TestGsonServiceImpl>>—>JsonToObject cnt:100>>>>Time:15

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:100>>>>Time:187

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:100>>>>Time:72

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100>>>>Time:92

<<TestFastJsonImpl>>—>JsonToObject cnt:100>>>>Time:43

 

转化对象数量(1 0000个)结果

 

<<TestJacksonImpl>>—>ObjectToJson cnt:10000>>>>Time:274

<<TestJacksonImpl>>—>JsonToObject cnt:10000>>>>Time:601

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:10000>>>>Time:272

<<TestGsonServiceImpl>>—>JsonToObject cnt:10000>>>>Time:167

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:10000>>>>Time:1069

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:10000>>>>Time:1166

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:10000>>>>Time:292

<<TestFastJsonImpl>>—>JsonToObject cnt:10000>>>>Time:314

**************************************

 

 

通过观察得到(三种情况一样)

(序列化性能排序)

GSON>Jackson>FastJson>Json-lib

(反序列化性能排序)

Gson>FastJson>JackSon>Json-lib

 

转化对象数量(10 0000个)结果

<<TestJacksonImpl>>—>ObjectToJson cnt:100000>>>>Time:607

<<TestJacksonImpl>>—>JsonToObject cnt:100000>>>>Time:514

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100000>>>>Time:458

<<TestGsonServiceImpl>>—>JsonToObject cnt:100000>>>>Time:312

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:100000>>>>Time:2135

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:100000>>>>Time:2608

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100000>>>>Time:445

<<TestFastJsonImpl>>—>JsonToObject cnt:100000>>>>Time:465

**************************************

(序列化性能排序)

FastJson>GSON>Jackson>Json-lib

(反序列化性能排序)

Gson>FastJson>JackSon>Json-lib

 

转化对象数量(100 0000个)结果

<<TestJacksonImpl>>—>ObjectToJson cnt:1000000>>>>Time:1175

<<TestJacksonImpl>>—>JsonToObject cnt:1000000>>>>Time:1480

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:1000000>>>>Time:2032

<<TestGsonServiceImpl>>—>JsonToObject cnt:1000000>>>>Time:1654

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:1000000>>>>Time:10239

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:1000000>>>>Time:14914

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:1000000>>>>Time:1035

<<TestFastJsonImpl>>—>JsonToObject cnt:1000000>>>>Time:1772

**************************************

(序列化性能排序)

FastJson>Jackson>GSON>Json-lib

(反序列化性能排序)

JackSon> Gson>FastJson >Json-lib

转化对象数量(1000 0000个)结果

 

<<TestJacksonImpl>>—>ObjectToJson cnt:10000000>>>>Time:6466

<<TestJacksonImpl>>—>JsonToObject cnt:10000000>>>>Time:11331

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:10000000>>>>Time:16741

<<TestGsonServiceImpl>>—>JsonToObject cnt:10000000>>>>Time:15394

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:10000000>>>>Time:6329

<<TestFastJsonImpl>>—>JsonToObject cnt:10000000>>>>Time:14567

**************************************

Json-lib效率很低了,排除测试

(序列化性能排序)

FastJson>Jackson>GSON>Json-lib

(反序列化性能排序)

JackSon>FastJson>Gson>Json-lib

总结

  1. json-lib效率最低
  2. gson在处理小数据量时有优势
  3. 随这处理数量增多,Fasejson、jackson处理效率慢慢高于其他。

四、      复杂(数组)对象测试(对象个数固定100)

数组长度为(10)

<<TestJacksonImpl>>—>ObjectToJson cnt:100>>>>Time:91

<<TestJacksonImpl>>—>JsonToObject cnt:100>>>>Time:127

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100>>>>Time:87

<<TestGsonServiceImpl>>—>JsonToObject cnt:100>>>>Time:48

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:100>>>>Time:316

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:100>>>>Time:412

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100>>>>Time:129

<<TestFastJsonImpl>>—>JsonToObject cnt:100>>>>Time:71

通过观察得到

(序列化性能排序)

GSON>Jackson>FastJson>Json-lib

(反序列化性能排序)

Gson>FastJson>JackSon>Json-lib

数组长度为(1000)

<<TestJacksonImpl>>—>ObjectToJson cnt:100>>>>Time:239

<<TestJacksonImpl>>—>JsonToObject cnt:100>>>>Time:372

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100>>>>Time:440

<<TestGsonServiceImpl>>—>JsonToObject cnt:100>>>>Time:221

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:100>>>>Time:2398

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:100>>>>Time:2968

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100>>>>Time:385

<<TestFastJsonImpl>>—>JsonToObject cnt:100>>>>Time:371

通过观察得到

(序列化性能排序)

Jackson>FastJson>GSON>Json-lib

(反序列化性能排序)

Gson>FastJson>JackSon>Json-lib

数组长度为(1 0000)

<<TestJacksonImpl>>—>ObjectToJson cnt:100>>>>Time:859

<<TestJacksonImpl>>—>JsonToObject cnt:100>>>>Time:1084

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100>>>>Time:2181

<<TestGsonServiceImpl>>—>JsonToObject cnt:100>>>>Time:1370

**************************************

<<TestJsonLibServiceImpl>>—>ObjectToJson cnt:100>>>>Time:11754

<<TestJsonLibServiceImpl>>—>JsonToObject cnt:100>>>>Time:18975

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100>>>>Time:1268

<<TestFastJsonImpl>>—>JsonToObject cnt:100>>>>Time:1781

通过观察得到

(序列化性能排序)

Jackson>FastJson>GSON>Json-lib

(反序列化性能排序)

JackSon>Gson>FastJson> Json-lib

数组长度为(10 0000)

<<TestJacksonImpl>>—>ObjectToJson cnt:100>>>>Time:6893

<<TestJacksonImpl>>—>JsonToObject cnt:100>>>>Time:9863

**************************************

<<TestGsonServiceImpl>>—>ObjectToJson cnt:100>>>>Time:18507

<<TestGsonServiceImpl>>—>JsonToObject cnt:100>>>>Time:13384

**************************************

<<TestFastJsonImpl>>—>ObjectToJson cnt:100>>>>Time:13463

<<TestFastJsonImpl>>—>JsonToObject cnt:100>>>>Time:16535

**************************************

通过观察得到

(序列化性能排序)

Jackson>FastJson>GSON>Json-lib

(反序列化性能排序)

JackSon>FastJson >Gson>Json-lib

 

总结

  1. json-lib,这个效率非常地
  2. Jackson在处理复杂对象的时候有优势,推荐使用

 

五、      结果总结

  1. json-lib效率非常低,不推荐使用
  2. jackson在处理大数据量、复杂对象的时候有优势(推荐程序中使用)
  3. gson这个在处理简单对象、数据量小的时候有优势(数据量少、对象简单小的项目可以使用一下)
  4. FastJson的性能也可以(项目中可以使用)

 

推荐指数

Jackson>FastJson>GSON>Json-lib

 

转载请注明:学时网 » json序列化和反序列化性能测试报告

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!