Ruby 的马歇尔格式架构和 Ruby 版本是独立的吗?



我正在考虑使用Marshall将对象序列化为缓存,但我想确保相同的缓存可以在体系结构(Linux x86,Linux x86-64,mac x86-64)和Ruby版本(1.8.7,1.9.3)中使用。我会没事吗?

封送格式是版本化的,这些版本与 ruby 版本不对应。我相信它也是独立于架构的。

碰巧的是,该版本在 1.8.7 中与今天(当前为 4.8)相同,因此理论上您可以继续使用。在实践中,我似乎记得一些粗糙的边缘,特别是在字符串周围,在 ruby 1.9 中具有相关的编码,但在 1.8 中则没有。

一个缺点是封送可能非常冗长,因为它会转储对象中的所有实例变量。例如,对于 ActiveRecord 对象,有一些实例变量只跟踪一些缓存的数据。

最新更新