java - 序列化相对简单的 Java POJO 的最快方法?

标签 java serialization protocol-buffers thrift

我需要将数百万个 Java POJO 写入磁盘,并从磁盘读取它们,而且我需要快速完成。

我宁愿避免定义单独的模板文件,因为我认为 Thrift 和 Google Protocol Buffers 需要这样做。相反,如果 Java 类本身是对象的权威规范(与 Java 序列化、Gson 和其他序列化协议(protocol)一样),那就更好了。我意识到这里可能会对性能造成一些影响,但是只要速度不慢一个数量级就可以了。

要序列化的类由几个简单的长整型字段和字符串字段以及一个映射(其中该映射中的值都是数字或字符串)组成。

任何人都可以推荐一些我应该为此查看的库吗?

最佳答案

首先使用 Java 序列化进行测试,看看它是否足够快。 它是内置的,并且有足够的能力处理图表和多个版本。

在您知道需要它之前,没有理由寻找替代品。

编辑:您将需要重置()ObjectStream,以便不使用对已写入对象的引用填充查找表。如果您正在编写相对独立的对象,那么在每个“顶级”对象之后进行重置可能不是问题,但如果您的数据中有复杂的关系,我建议您尝试 JPA 或其他东西。

关于java - 序列化相对简单的 Java POJO 的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421244/

相关文章:

java - java Matlab 的可序列化性

python - 消息反序列化期间 python 中的 Protobuf 提示 'Unexpected end-group tag.'

python - 将 proto 缓冲区转换为 ProtoRPC

java - 使用正则表达式将大写 html 属性转换为小写 html 属性

java - Maven 资源文件夹

具有流和性能的 Java 8 嵌套循环

java - Protobuf 和 Java : put object into oneof

java - Init block VS 在构造函数中调用的 init() 私有(private)方法

java - 在 hazel 转换中使用 sql 谓词的嵌套获取/更新函数

c# - 使用 Json.NET 反序列化这种数据