эффективная сериализация графа объектов Java

ответил Виллек: попробуйте typeANDvariant вместо typeANDVariant (нижний регистр v). - Виллек

спасибо.

5
задан user87083 4 April 2009 в 13:35
поделиться

5 ответов

Для сериализации Гессиан является одним из самых эффективных.

Это приблизительно в 2-3 раза меньше и быстрее, чем Сериализация Java, даже с помощью классов Externalizable.

Какой бы ни сериализация, которую Вы используете, можно использовать сжатие довольно легко для создания данных более компактными.

Кроме того можно записать собственную сериализацию. Я записал сериализатор, который пишет в ByteBuffer, который приблизительно вдвое более быстр и половина размера Гессиана (о 5x более быстрый/меньший, чем Сериализация Java), Это может быть слишком большим усилием для небольшого усиления, если существующая сериализация сделает то, в чем Вы нуждаетесь. Однако это столь настраиваемо, как Вам нравится ;)

1
ответ дан 15 December 2019 в 01:11
поделиться

Для маленьких объектов сериализированная форма Java, вероятно, будет во власти описания сериализированных классов.

Вы можете выписывать сериализированные данные для наиболее часто используемых классов и затем использовать это в качестве общего префикса для серии сериализованных потоков. Обратите внимание, что это очень хрупко, и Вы, вероятно, захотите повторно вычислить и проверить его на каждый экземпляр загрузчика класса.

2
ответ дан 15 December 2019 в 01:11
поделиться

Я второй замечание о полезности сжатия - все форматы сжимаются примерно до одинакового значения, то есть с большим выходом сжимается больше.

Помимо этой и других рекомендаций, JSON с Джексоном работает довольно хорошо: намного быстрее, чем XML (конкурирует с PB, Hessian) и немного более компактен; гораздо более гибкий, чем PB, легко интегрируемый с JS на стороне клиента (если это имеет значение) и легко решающий проблему.

1
ответ дан 15 December 2019 в 01:11
поделиться

Я думаю, что сериализация Java по умолчанию будет довольно маленькой. Можете Вы не полезно ограничивать то, что Вы хотите сериализировать через transient ключевое слово? Это решило бы Вашу третью проблему (гибкость и аннотации)

0
ответ дан 15 December 2019 в 01:11
поделиться

http://jserial.sourceforge.net/ удовлетворил бы Вашим потребностям?

0
ответ дан 15 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: