json序列化和反序列化性能
一、 测试环境
Eclipse+maven+JUnit
二、 测试思路
分两种情况测试观察效率
- 区分简单对象和复杂数组对象测试性能
- 调节对象数量测试性能
三、 简单(单一)对象测试
转化对象数量(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
总结
- json-lib效率最低
- gson在处理小数据量时有优势
- 随这处理数量增多,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
总结
- json-lib,这个效率非常地
- Jackson在处理复杂对象的时候有优势,推荐使用
五、 结果总结
- json-lib效率非常低,不推荐使用
- jackson在处理大数据量、复杂对象的时候有优势(推荐程序中使用)
- gson这个在处理简单对象、数据量小的时候有优势(数据量少、对象简单小的项目可以使用一下)
- FastJson的性能也可以(项目中可以使用)
推荐指数
Jackson>FastJson>GSON>Json-lib
转载请注明:学时网 » json序列化和反序列化性能测试报告