您的位置:首页 > Web前端 > JavaScript

FastJSON、Gson和Jackson性能对比

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


JSON序列化(Object => JSON)

测试样本数量为100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本Java对象保存在文件中。每个类库测试3次,每次循环测试10遍,去掉最快速度和最慢速度,对剩下的8遍求平均值作为最终的速,取3次测试中最好的平均速度作为最终的测试数据。
类库样本数量执行次数最长时间(毫秒)最短时间(毫秒)平均时间(毫秒)
FastJSON100000102291.221416.701454.93
Jackson100000101980.92841.91880.82
Gson100000102383.021469.081520.38
从测试数据可知,FastJSON和GsonJSON序列化的速度差不多,Jackson是最快的(用时Gson少大约600毫秒)。


JSON反序列化(JSON => Object)

测试样本数量为100000个,为了保证每个类库在测试中都能处理同一个样本,先把样本JSON对象保存在文件中。每个类库测试3次,每次循环测试10遍,去掉最快速度和最慢速度,对剩下的8遍求平均值作为最终的速,取3次测试中最好的平均速度作为最终的测试数据。
类库样本数量执行次数最长时间(毫秒)最短时间(毫秒)平均时间(毫秒)
FastJSON100000107942.316340.556526.41
Jackson100000107957.226623.856815.41
Gson100000108235.157006.067364.75
从测试数据可知,三个类库在反序列化上性能比较接近,Gson稍微差一些。


总结

把Java对象JSON序列化,Jackson速度最快,在测试中比Gson快接近50%,FastJSON和Gson速度接近。 

把JSON反序列化成Java对象,FastJSON、Jackson速度接近,Gson速度稍慢,不过差距很小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json