У меня есть сложный объект my_object, который я маршалирую с помощью
Marshal.dump(мой_объект)
Я проверил производительность вызова этой линии 100 раз как в 2.1.5p273, так и в 2.2.0, и ниже приведены результаты:
2.1.5
user system total real
Marshal Dump 7.310000 0.120000 7.430000 ( 8.988470)
Marshal Dump 7.520000 0.050000 7.570000 ( 8.210356)
Marshal Dump 7.610000 0.050000 7.660000 ( 8.432685)
2.2.0
user system total real
Marshal Dump 26.480000 0.150000 26.630000 ( 29.591742)
Marshal Dump 24.100000 0.300000 24.400000 ( 28.520397)
Marshal Dump 26.210000 0.210000 26.420000 ( 29.993412)
(Для тщательности я запускал тест 3 раза для каждой версии.)
Как видите, в 2.2.0 это занимает в 3 раза больше времени, чем в 2.1.5. Я сосредоточился на Marshal.dump, потому что использование драгоценного камня ruby-prof показало мне, что эта строка работает плохо; но я не могу найти способ получить методы, которые сам Marshal.dump вызывает в профилировщике.
Изменить: см. мой ответ с минимальным воспроизведением, найденным после долгих экспериментов.