java – Hazelcast序列化嵌套对象

你好,我对最新的Hazecast版本和序列化有一个问题.让我们有以下类:

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

Address和CustomerDetails这两个类都实现了DataSerializeable.我们此刻序列化它们的方式是:

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

在网上的一些例子中,我看到他们序列化同一个类的方式是:

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

看看你会看到的代码,它会给你几乎相同的好处.

点赞