高效的java对象图序列化

use*_*083 5 java serialization

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

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

底层文件格式并不重要.

我查看了Protocol Buffers和XStream,但由于需要映射文件而后者生成大文件,前者不够灵活.

任何帮助赞赏.

Pet*_*rey 2

对于序列化来说,Hessian 是最有效的之一。

即使使用外部化类,这也比 Java 序列化小 2-3 倍,速度也快。

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

除此之外,您可以编写自己的序列化。我编写了一个序列化器,它向 ByteBuffer 写入数据或从 ByteBuffer 写入数据,其速度大约是 Hessian 的两倍,大小大约是 Hessian 的一半(比 Java 序列化快/小大约 5 倍),如果现有的序列化能够满足您的需要,这可能会付出太多的努力而收效甚微。不过,它可以根据您的喜好进行定制;)