Hazelcast 序列化嵌套对象

Hazelcast Serialization nested objects

您好,我有一个关于最新的 Hazecast 版本和序列化的问题。让我们有以下 class:

class Customer implements DataSerializeable {
    List<Address> adresses;
    CustomerDetails details;
}

classes Address 和 CustomerDetails 都实现了 DataSerializeable。我们目前序列化它们的方式是:

public void writeData(ObjectDataOutput out) throws IOException {
   out.writeObject(address);
   out.writeObject(details);
}

在一些在线示例中,我看到他们序列化相同 class 的方式是:

public void writeData(ObjectDataOutput out) throws IOException {
   address.writeData(out);
   short size = details.size();
   out.writeShort(size);
   for (CustomerDetail detail: details) {
      detail.writeData(out);
   }

}

我 运行 对几百万条记录进行了一些性能测试,我无法观察到性能上的显着差异。

对嵌套对象进行序列化的推荐方法是什么。有人可以就最新的 Hazelcast 3.6 版对此发表评论吗?

谢谢

这些天没有明显的区别,因为我们已经为 ArrayList、LinkedList、HashMap 优化了序列化程序。这样你就可以获得与手写几乎相同的好处。

可在此处找到 ArrayList 序列化程序 类:https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/internal/serialization/impl/ArrayListStreamSerializer.java

查看您将看到的代码,它会给您带来几乎相同的好处。