Ответ 1
UPDATE (2018): scala/травление больше не поддерживается. Существуют клады других библиотек, которые возникли в качестве альтернатив, которые используют сходные подходы, но которые, как правило, ориентированы на конкретные форматы сериализации; например, JSON, двоичный, protobuf.
Ваш прецедент является целым прецедентом для scala/травления (https://github.com/scala/pickling). Отказ от ответственности: я автор.
Scala/травление было разработано как более быстрая, более типичная и более открытая альтернатива автоматическим фреймворкам, таким как Java или Kryo. Он был построен, в частности, для распределенных приложений, поэтому время сериализации/десериализации и размер сериализованных данных занимают переднее сиденье. Совсем другой подход к сериализации - он генерирует код травления (сериализации), встроенный на сайт-сайт во время компиляции, поэтому он действительно очень быстрый.
Последние тесты находятся в нашей OOPSLA paper - для бинарного формата рассола (вы также можете выбрать другие, такие как JSON) scala/травление последовательно быстрее, чем Java и Kryo, и создает двоичные представления, которые на уровне или меньше, чем у Kryo, что означает меньшую задержку при передаче ваших маринованных данных по сети.
Для получения дополнительной информации есть страница проекта: http://lampwww.epfl.ch/~hmiller/pickling
И ScalaDays 2013 разговора с июня на сайте Parley.
Мы также представим некоторые новые разработки, в частности связанные с отправкой замыканий по сети в Strange Loop 2013, в случае, если это также может быть причиной боли в вашем случае использования.
На момент написания этой статьи scala/травление находится в предварительном выпуске, причем наш первый стабильный релиз запланирован на 21 августа.