首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高效的java对象图序列化

高效的java对象图序列化
EN

Stack Overflow用户
提问于 2009-04-04 13:35:07
回答 6查看 4.8K关注 0票数 7

序列化java对象图的最佳方法是什么?

我对序列化库的要求是1)反序列化的速度2)大小-尽可能小(小于java默认序列化) 3)灵活性-必须序列化的内容的基于注释的定义会很好。

底层文件格式并不重要。

我研究了Protocol Buffers和XStream,但前者由于需要映射文件而不够灵活,而后者会生成大文件。

感谢您的帮助。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-04-04 14:38:55

对于序列化,Hessian是最有效的方法之一。

即使使用Externalizable类,这也比Java序列化小2-3倍,而且速度更快。

无论使用哪种序列化,都可以相当容易地使用压缩来使数据更紧凑。

除此之外,您还可以编写自己的序列化。我写了一个串行化程序,它可以写入ByteBuffer,它的速度大约是Hessian的两倍,大小是Hessian的一半(大约比Java Serialization快5倍/更小),如果现有的序列化可以做你需要的事情,这可能是太费力气了。但是,它可以根据您的喜好进行自定义;)

票数 2
EN

Stack Overflow用户

发布于 2009-04-04 14:46:20

对于小对象,Java序列化形式很可能由序列化类的描述主导。

您可以写出常用类的序列化数据,然后将其用作一系列序列化流的公共前缀。注意,这是非常脆弱的,您可能需要为每个类加载器实例重新计算和检查它。

票数 3
EN

Stack Overflow用户

发布于 2009-04-11 00:57:27

我第二个注意到压缩的有用性--所有格式压缩到大致相同,即越大的输出压缩得越多。

除此之外,带有Jackson的JSON工作得非常好:比XML快得多(与PB、Hessian竞争),更紧凑;比PB灵活得多,易于与客户端JS集成(如果重要的话),并且易于故障排除。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/717090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档