Здравствуйте, у меня есть один вопрос относительно последних версий и сериализации Hazecast. Позволяет иметь следующий класс:Hazelcast Сериализация вложенных объектов
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);
}
}
Я провел некоторые испытания производительности по сравнению с парой milion records я не смог наблюдать значительную разницу в производительности.
Каков рекомендуемый способ сериализации вложенных объектов. Может кто-то прокомментировать это в отношении последней версии 3.6 Hazelcast.
Спасибо
В последнем примере отсутствует строка, в которой размер будет выписан до деталей. Кроме того, ваш первый фрагмент кода делает сериализацию, специфичную для коллекции, последняя имеет тип Collection-type-agnostic. Если у вас есть f.e. ленивые списки из спящего режима, вы не хотите сериализовать объект списка, а элементы. –
Благодарим вас за исправление. Я хотел бы знать, есть ли какая-то заметная разница, когда дело доходит до производительности. Мое впечатление, что в то время как out.writeObject() называется Hazelcast, просматривает сверхурочную работу сериализатора, который следует использовать в отличие от примера № 2. Можем ли мы сказать, что может быть заметная разница в производительности, или мы говорим о незначительная разница. В моем случае мы не используем ленивые коллекции. Должны ли мы пойти с примером один или пример два. Спасибо. –
Перейдите к # 1, если вы хотите сохранить тип реализации коллекции, иначе перейдите к # 2; производительность должна быть немного лучше (но она, вероятно, потеряна при шуме ввода-вывода, и почему вы не настраиваете тест, чтобы попробовать его с собственным профилем данных?). –