Bug #15625 ยป classname.rb
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
