From: matz@... (Yukihiro Matsumoto) Date: 1996-10-09T11:38:31+09:00 Subject: [ruby-list:811] Re: Marshal(0.99.2-961007 available) まつもと ゆきひろです. In message "[ruby-list:807] Marshal(0.99.2-961007 available)" on 96/10/08, 石塚圭樹 writes: | |けいじゅ@SHLジャパンです. |plainファイルからの読み込み: 20m09s |marshalファイルからの読み込み: 17m27s | |でした. 思ったより結果が良くないですねえ... もっと頑張ることはできませ |ん?? dynamic loadの時間が余計にかかっているのかもしれません. あとはMarshalがプラットフォーム独立にオブジェクトをファイル に格納できるということだけしか考えていないので速度的なチュー ンが全く行われていないせいとか,再帰的なオブジェクトの格納な どのためオーバースペックになっているせいとかもあるでしょう. これはファイルサイズについてもいえるかもしれません. In message "[ruby-list:810] Re: Marshal(0.99.2-961007 available)" on 96/10/09, 石塚圭樹 writes: |Marshalファイルのフォーマットはどうなっているのでしょう? 以下のようになっています. 全体 : マーク(1byte) ボディ マーク ボディ… ボディの構造 NIL/TRUE/FALSE: ボディは無い Fixnum: リトルエンディアン(4byte) String: 長さ(4byte) 中身 Object: クラス名(文字列) インスタンス変数の数(4byte)... Array: 長さ(4byte) ... Hash: 長さ(4byte) key value ... Float: 長さ(4byte) 文字列表現(最大12バイト) Objectの場合は_dump_toメソッドと_load_fromクラスメソッドの組 を定義すれば独自のフォーマットを使うことができます. まつもと ゆきひろ /:|)