--- Object#_dump(limit)
--- Class#_load(str)

    Marshal.dump ˤƽϤ륪֥Ȥ᥽å `_dump' 
    ƤˤϡΥ᥽åɤη̤񤭽Фޤ᥽
     `_dump' ϰȤƺƵ¤٥ limit 
    ꡢ֥Ȥʸ󲽤Τ֤ޤ

    󥹥󥹤᥽å `_dump' ĥ饹ɬƱե
    ޥåȤɤ᤹饹᥽å `_load' ɬפ
    ޤ`_load' ϥ֥Ȥɽʸꡢ
    򥪥֥ȤᤷΤ֤ɬפޤ

        class Foo
          def initialize(obj)
            p "initialize() called"
            @foo = obj
          end
          def _dump(limit)
            Marshal.dump(@foo, limit)
          end
          def self._load(obj)
            Foo.new(Marshal.load(obj))
          end
        end

        p Marshal.load(Marshal.dump(Foo.new(['foo', 'bar'])))

        => "initialize() called"
           "initialize() called"
           #<Foo:0x4019eb88 @foo=["foo", "bar"]>

    󥹥ѿξ̥ޡǡ˴ޤޤΤǡ
    Τ褦 _dump ɬפϤޤ( _dump 
    󥹥ѿξ dump ʤʤޤ)
    _dump/_load Ϥ٤Ԥĥ饤֥
    饹Υ󥹥󥹤󥹥ѿʳ˾ݻ
    Ѥޤ(㤨С饹 Time ϡ_dump/_load 
    ޤ)

