ответил Виллек: попробуйте typeANDvariant вместо typeANDVariant (нижний регистр v). - Виллек
спасибо.
Для сериализации Гессиан является одним из самых эффективных.
Это приблизительно в 2-3 раза меньше и быстрее, чем Сериализация Java, даже с помощью классов Externalizable.
Какой бы ни сериализация, которую Вы используете, можно использовать сжатие довольно легко для создания данных более компактными.
Кроме того можно записать собственную сериализацию. Я записал сериализатор, который пишет в ByteBuffer, который приблизительно вдвое более быстр и половина размера Гессиана (о 5x более быстрый/меньший, чем Сериализация Java), Это может быть слишком большим усилием для небольшого усиления, если существующая сериализация сделает то, в чем Вы нуждаетесь. Однако это столь настраиваемо, как Вам нравится ;)
Для маленьких объектов сериализированная форма Java, вероятно, будет во власти описания сериализированных классов.
Вы можете выписывать сериализированные данные для наиболее часто используемых классов и затем использовать это в качестве общего префикса для серии сериализованных потоков. Обратите внимание, что это очень хрупко, и Вы, вероятно, захотите повторно вычислить и проверить его на каждый экземпляр загрузчика класса.
Я второй замечание о полезности сжатия - все форматы сжимаются примерно до одинакового значения, то есть с большим выходом сжимается больше.
Помимо этой и других рекомендаций, JSON с Джексоном работает довольно хорошо: намного быстрее, чем XML (конкурирует с PB, Hessian) и немного более компактен; гораздо более гибкий, чем PB, легко интегрируемый с JS на стороне клиента (если это имеет значение) и легко решающий проблему.
Я думаю, что сериализация Java по умолчанию будет довольно маленькой. Можете Вы не полезно ограничивать то, что Вы хотите сериализировать через transient
ключевое слово? Это решило бы Вашу третью проблему (гибкость и аннотации)
http://jserial.sourceforge.net/ удовлетворил бы Вашим потребностям?