Быстрее/больше эффективные альтернативы Маршалу Ruby?

Я ищу общедоступную замену возможности Маршала Ruby, которая, надо надеяться, имеет один или несколько следующих преимуществ перед Маршалом:

  • более быстрая сериализация/десериализация
  • более краткий (или просто меньший) граф объектов

Спасибо!!

6
задан Joseph Weissman 22 June 2010 в 18:49
поделиться

2 ответа

Msgpack предназначен для всего этого. Для замены Marshal:

require 'msgpack'

module Marshal
  module_function
  def dump(x)
    x.to_msgpack
  end
  def load(x)
    MessagePack.unpack x
  end
  alias restore load
end

http://msgpack.sourceforge.net/

3
ответ дан 17 December 2019 в 02:24
поделиться

К сожалению, это не работает как капля замены, потому что Marshall автоматически обрабатывает сложные типы. Похоже, msgpack потребует создания дополнительных функций, которые (например, внутренние компоненты Marshal) будут перебирать структуры Ruby, которые определяют рассматриваемый объект.

3
ответ дан 17 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

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