まつもと ゆきひろです.
In message "[ruby-list:807] Marshal(0.99.2-961007 available)"
on 96/10/08, 石塚圭樹 <keiju / shljapan.co.jp> 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, 石塚圭樹 <keiju / shljapan.co.jp> 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クラスメソッドの組
を定義すれば独自のフォーマットを使うことができます.
まつもと ゆきひろ /:|)