1

我正在考虑使用 Marshall 将对象序列化到缓存中,但我想确保相同的缓存可以跨架构(linux x86、linux x86-64、mac x86-64)和跨 Ruby 版本(1.8.7 , 1.9.3)。我会好吗?

4

1 回答 1

4

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

碰巧的是,该版本在 1.8.7 中与今天(当前为 4.8)中的版本相同,所以理论上你很高兴。在实践中,我似乎记得一些粗糙的边缘,特别是在字符串周围,在 ruby​​ 1.9 中具有相关的编码,但在 1.8 中没有。

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

于 2012-04-04T22:49:20.953 回答