Project

General

Profile

Bug #15625 ยป classname.rb

nelhage (Nelson Elhage), 02/27/2019 05:35 PM

 
1
require 'benchmark'
2

    
3
N = 100_000
4

    
5
Benchmark.bm do |x|
6
  k = Class.new
7
  x.report('before') do
8
    N.times do
9
      k.name
10
    end
11
  end
12
end
13

    
14
module A; end
15

    
16
module A1
17
  C1 = A
18
  C2 = A
19
end
20

    
21
module A2
22
  C1 = A1
23
  C2 = A1
24
end
25

    
26
module A3
27
  C1 = A2
28
  C2 = A2
29
end
30

    
31
module A4
32
  C1 = A3
33
  C2 = A3
34
end
35

    
36
module A5
37
  C1 = A4
38
  C2 = A4
39
end
40

    
41
module A6
42
  C1 = A5
43
  C2 = A5
44
end
45

    
46
module A7
47
  C1 = A6
48
  C2 = A6
49
end
50

    
51
module A8
52
  C1 = A7
53
  C2 = A7
54
end
55

    
56
module A9
57
  C1 = A8
58
  C2 = A8
59
end
60

    
61
Benchmark.bm do |x|
62
  k = Class.new
63
  x.report('a19') do
64
    N.times do
65
      k.name
66
    end
67
  end
68
end
69

    
70
module A10
71
  C1 = A9
72
  C2 = A9
73
end
74

    
75
Benchmark.bm do |x|
76
  k = Class.new
77
  x.report('a10') do
78
    N.times do
79
      k.name
80
    end
81
  end
82
end
83

    
84
module A11
85
  C1 = A10
86
  C2 = A10
87
end
88

    
89
Benchmark.bm do |x|
90
  k = Class.new
91
  x.report('a11') do
92
    N.times do
93
      k.name
94
    end
95
  end
96
end