Java序列化 json序列化_Java序列化与JSON序列化大比拼

一、背景

有项目需要传输Map结构的数据,有人倾向用JAVA序列化来做,有人倾向用JSON的序列化来做。所以我们还是比比吧。

Java观点:Object2Object,使用时简单快速。

JSON观点:JSON格式与语言无关,扩展性强,速度也应该不慢。

大家可能对Java序列化都有一个错误的认识,认为Java序列化比JSON的序列化效率高并且序列化的数据小,其实实际上并不一定是这样,我这次就想通过实际测试来解开这个谜团。

二、测试方式

测试同一个Map并序列化为byte[],并再将byte[]反序列化为Map的过程。Object中包括String,Integer,Long,Boolean,Float,Double常规类型的数据。

序列化:Map -> byte[]

反序列化:byte[] -> Map

测试各种大小不同的Map,并循环执行同一操作N次,来得到一个相对稳定的线性结果。

三、比较的对象

JAVA:

手写Java(1.6.0_32)与Common Lang3(3.1)的SerializationUtils。

JSON:

将采用Gson(2.2.2)与json-smart(2.0-RC2)两种不同的JSON解析器。json-smart号称是速度最快的JSON解析器。

四、比较结果

Map大小(10-100)循环10万次

序列化时间比较(y为序列化时间ms)

081302zbslkxgifpheshsk.png

反序列化时间比较(y为反序列化时间ms)

081303br7fq2tm9ms1e01m.png

序列化时间汇总比较(y为序列化与反序列化总时间ms)

08130394l9kikavau5v4ay.png

序列化后byte大小比较(由于同类线重合显示为2条线)

081303bzm82bzymtt4si6q.png

Map大小(100-1000)循环1万次

序列化时间比较(y为序列化时间ms)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值