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
查看您将看到的代码,它会给您带来几乎相同的好处。
您好,我有一个关于最新的 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
查看您将看到的代码,它会给您带来几乎相同的好处。