ruby - Ruby 的 Marshall 格式架构和 Ruby-version 是否独立?

标签 ruby serialization

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

最佳答案

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

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

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

关于ruby - Ruby 的 Marshall 格式架构和 Ruby-version 是否独立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020273/

相关文章:

ruby-on-rails - Rails 3. 如何在一个页面中创建多个新资源?

ruby-on-rails - rails 5 : Render a div for each child object in a collection

javascript - EF -> WCF -> JSON

c# - DataContract + 多维数组——有什么解决方案吗?

ruby-on-rails - JSON gem : Failing to build gem native extension, Windows 7 上的 bundle 安装失败

ruby-on-rails - Ruby on Rails 中的主页条件

ruby - 使用 Ruby 编码 Unicode 代码点

java - Jackson YAML 序列化对象数组格式

c# - 读取 "Large"文件时内存不足异常

java - 为什么 EJB 需要实现可序列化接口(interface)?