From: Shin-ichiro HARA Date: 2002-08-02T18:10:45+09:00 Subject: [ruby-list:35700] import-module (Re: Re: scope-in-state) 原です。 こんな感じなのを作ってみました。([RAA: Import Module]) require "import-module" class Foo def hello puts 'hello' end end module Bar def hello puts 'bye' end end module Baz def hello puts 'good-bye' end end foo = Foo.new foo.hello #=> hello Foo.import_module(Bar) do foo.hello #=> bye Foo.import_module(Baz) do foo.hello #=> good-bye end foo.hello #=> bye end foo.hello #=> hello エイリアス名ベースで push, pop するという怪しいものですが、 スピードは速くて Foo.import_module(Bar) do 10000.times do foo.hello end end で比較すると、同内容の scope-in-state より 100 倍ほど速いです。 もっとも 10000.times do Foo.import_module(Bar) do foo.hello end end だと、20 倍遅いですが。(当校比 -- あてにならず。) 一応、$IMPORT_MODULE_thread_safe = true で、マルチスレッド対応 したつもりですが、まだ十分吟味していません。この時は、前者では 4 倍早く、後者では 40 倍遅いです。