Я знаю, что сериализация объекта (насколько мне известно) является единственным способом эффективного глубокого копирования объекта (до тех пор, пока он не выглядит так, как IO и whatnot), но является одним из способов, особенно более эффективным, чем другой?
Например, поскольку я использую Rails, я всегда мог использовать ActiveSupport::JSON, to_xml - и из того, что я могу сказать, маршаллинг объекта является одним из наиболее приемлемых способов сделать это. Я бы ожидал, что маршаллинг, вероятно, самый эффективный из них, поскольку он является внутренним Ruby, но я что-то пропустил?
Изменить: обратите внимание, что его реализация - это то, что я уже рассмотрел - я не хочу заменять существующие методы мелкой копии (например, dup и clone), поэтому я просто вероятно, добавит Object::deep_copy, результат которого зависит от того, какой из вышеперечисленных методов (или любых предложений у вас есть), которые имеют наименьшие издержки.