Report abuse

Code:

require 'benchmark'

module Wrapper

  Benchmark.bm(6) do |b|
    b.report('alias:') do
      50000.times do
        class Foo
          def bar
            42
          end

          alias baz bar
        end

        Foo.new.baz

        remove_const(:Foo)
      end
    end

    b.report('def:') do
      50000.times do
        remove_const(:Foo) if defined?(Foo)

        class Foo
          def bar
            42
          end

          def baz
            bar
          end
        end

        Foo.new.baz

        remove_const(:Foo)
      end
    end
  end

end

Results:

            user     system      total        real
alias:  1.140000   0.030000   1.170000 (  1.169040)
def:    1.200000   0.060000   1.260000 (  1.255536)