Report abuse

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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:

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