Marshall を使用してオブジェクトをキャッシュにシリアル化することを検討していますが、アーキテクチャ間 (linux x86、linux x86-64、mac x86-64) および Ruby バージョン (1.8.7) 間で同じキャッシュを使用できるようにしたいと考えています。 、1.9.3)。私は大丈夫でしょうか?
質問する
168 次
1 に答える
4
マーシャル形式はバージョン管理されており、これらのバージョンはルビーバージョンに対応していません。アーキテクチャにも依存しないと思います。
たまたま、そのバージョンは1.8.7でも現在(現在は4.8)と同じだったので、理論的には問題ありません。実際には、特に文字列の周りのいくつかのラフなエッジを思い出しているようです。これは、ruby 1.9ではエンコードが関連付けられていますが、1.8ではありません。
1つの欠点は、マーシャルがすべてのインスタンス変数をオブジェクトにダンプするため、非常に冗長になる可能性があることです。たとえば、ActiveRecordオブジェクトの場合、キャッシュされたデータを追跡するだけのインスタンス変数がいくつかあります。
于 2012-04-04T22:49:20.953 に答える