文章搬家至https://lcy362.github.io/posts/57802/
对于一个java object的序列化,想测一下使用json和使用一般序列化工具,在时间性能、空间性能上的区别。
json选择用fastjson.
序列化工具使用了protostuff和kyro. 为什么不用protobuf呢?因为感觉对于一个已有的上百个属性的java class来说,再去新建一个匹配的proto文件有点反人类。protostuff是protobuf的改良版本,可以直接将一个java object进行序列化,使用方法与kyro有点类似,没有protobuf那么多中间过程。其他的,hession, java自带序列化之类的,据说性能比kryo和protobuf差很多,就不测了。
简单测了一下,发现差距还挺明显的,所以感觉也不需要做具体的评测了。把日志截一段发出来,大家感受下。
fastjson serilise cost 555805 length: 1740
kyro serilise cost 227375 length502
protostuff serilise cost 78950 length633
fastjson deserilise cost 130662
kyro deserilise cost 201716
protostuff deserilise cost

本文对比了Java对象使用kryo、protobuf(protostuff)和JSON(fastjson)进行序列化的性能。测试结果显示,protostuff在时间和空间效率上优于kryo,而kryo优于JSON。尽管kryo序列化的体积更小,但在Java类增加字段后可能无法反序列化。protostuff在类结构变化时更具兼容性,适合缓存等需要长期存储序列化对象的场景。若需求可读性,JSON则是更好的选择。
最低0.47元/天 解锁文章
670

被折叠的 条评论
为什么被折叠?



