需要非常快速的序列化Java

时间:2014-09-18 18:20:44

标签: java serialization

在这里,有一个大的对象列表(实际上是列表),我需要序列化/反序列化每个对象,因为它们不能适合内存。

我一个接一个地读取和写入文件。使用基本的Java序列化这非常慢,所以我需要一种方法来尽可能加快速度。

你能推荐我什么?

由于

3 个答案:

答案 0 :(得分:2)

你可以试试Avro:

http://avro.apache.org/

 Avro provides:

 * Rich data structures.
 * A compact, fast, binary data format.
 * A container file, to store persistent data.
 * Remote procedure call (RPC).
 * Simple integration with dynamic languages. Code generation is not required to read 
   or write data files nor to use or implement RPC protocols. Code generation as an 
   optional optimization, only worth implementing for statically typed languages.

与Thrift或Protocol Buffers不同,您不需要用于反序列化的java类。

答案 1 :(得分:0)

将您的代码从文件读取,反序列化,操作,返回文件写入,所以我们看到为什么它花时间?那么长时间意味着什么,你有一个基准标记你比较这些操作吗?使用框架应该是你的最后手段,除非你确定核心软件包不能真正做你想要的。

答案 2 :(得分:0)

您可以使用Google协议缓冲区,avro pr thrift

请检查此http://martin.kleppmann.com/2012/12/05/schema-evolution-in-avro-protocol-buffers-thrift.html