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

本文通过对比测试,分析了Java序列化与JSON(Gson和json-smart)在处理不同大小Map时的序列化和反序列化性能及数据大小。测试结果显示,JSON序列化在大部分情况下速度优于Java,且数据更小,特别是在反序列化时。在Map大小小于100时,Java反序列化性能较差;在100到1000之间,JSON的json-smart表现最优。因此,对于项目需求而言,json-smart可能是更好的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

有项目需要传输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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值